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

时间:2018-10-19 02:33:14

标签: java text case-sensitive

基本上我想要:

HellO MY NamE IS BilL

说我们要用标签代替名字 所以输出是:

HellO MY tag IS BiLL

我在该网站上看到了比较,并发现了使整个字符串变为小写然后进行比较的通用方法,但是如果这样做,我将丢失原始字符串的大小写值。这是一个更广泛的示例:

text=text.replaceAll(words, replacementWords);

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

2 个答案:

答案 0 :(得分:2)

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

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上进行替换,这不是我们想要的。

答案 1 :(得分:1)

这将以不区分大小写的方式搜索“名称”,并将其替换为“标签”:-

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