我想做什么: 如果字符串是
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.