替换 Android 中字符串中忽略空格和大小写的单词



我想做什么: 如果字符串是

String a = "Love is rare"; Or
String a = "l o v e is rare"; Or
String a = "LO VE is rare";

然后 我希望"爱"这个词被"恨"取代,忽略空间和大小写

我的代码:a=a.toLowerCase().replace("love","hate").replace("\s+","");

但问题是它删除了所有空格并将所有单词更改为小写。我只是想通过忽略所有空格和大小写来检查是否有一个单词 love,如果这个词在那里,那么用其他单词替换它。

请帮忙! 谢谢。

使用可选的空格?和不区分大小写的标志尝试这样做。如果要匹配零个或多个空格,可以使用空格和 *

l ?o ?v ?e

String regex = "l ?o ?v ?e";
String[] lines = {"Love is rare", "l o v e is rare", "LO VE is rare"};
String subst = "hate";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
for (String line: lines) { 
Matcher matcher = pattern.matcher(line);
String result = matcher.replaceAll(subst);
System.out.println(result);
}

这将为您提供:

hate is rare
hate is rare
hate is rare

演示爪哇

感谢您建议使用正则表达式一词,彻底研究并提出了这个单行函数,它将用"恨"代替"爱",忽略空格和大小写:

String a = "Lo ve is rare.";

法典:

a = a.replaceAll("(?i)l(\s*)o(\s*)v(\s*)e","hate");
TextView.setText(a);

这将给出:

hate is rare.

相关内容

最新更新