我想做的事情: 如果String是
String a = "Love is rare"; Or
String a = "l o v e is rare"; Or
String a = "LO VE is rare";
然后, 我想要“#34; love"被" hate"取代忽略空间和案例
我的代码:
a=a.toLowerCase().replace("love","hate").replace("\\s+","");
但问题是它删除了所有空格并将所有单词更改为小写。我只想通过忽略所有的空格和案例来检查是否有爱这个词,如果这个词在那里,那么用其他一些词替换它。
请帮忙! 谢谢。
答案 0 :(得分:0)
使用可选的空格?
和不区分大小写的标记来尝试这样做。如果要匹配零个或多个空格,可以使用空格和*
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
答案 1 :(得分:0)
感谢您提出正则表达式这一术语,彻底研究并提出这一行功能,将“仇恨”取代“爱”,忽略空格和案例:
String a = "Lo ve is rare.";
代码:
a = a.replaceAll("(?i)l(\\s*)o(\\s*)v(\\s*)e","hate");
TextView.setText(a);
这会给:
hate is rare.