替换在Android中忽略空格和大小写的单词

时间:2018-03-23 18:52:34

标签: android string replace

我想做的事情: 如果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+","");

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

请帮忙! 谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

Demo Java

答案 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.