如何在匹配原始字符串的大小写的同时替换字符串中的字符?

how can I replace characters in a string while matching the case of the original string?

基本上我想要:

HellO MY NamE IS BilL

假设我们想用标签替换名称 所以输出是:

HellO MY tag IS BiLL

我在这个网站上看到了比较和将整个字符串小写然后进行比较的常用方法,但是如果我这样做,那么我会丢失原始字符串的大小写值。这是一个更广泛的例子:

text=text.replaceAll(words, replacementWords);

.compareToIgnoreCase(str) 不起作用,因为它正在比较字符串

尝试进行不区分大小写的全部替换:

String input = "HellO MY NamE IS BilL";
String output = input.replaceAll("(?i)\bname\b", "tag");
System.out.println(output);

HellO MY tag IS BilL

我们还应该在搜索时在 name 周围放置单词边界,以避免错误的替换,例如在 surname 上进行替换,这不是我们想要的。

这将以不区分大小写的方式搜索 "name" 并将其替换为 "tag":-

str = str.replaceAll("(?i)name", "tag");