Java中的String replaceAll方法

3

I have following problem,

Code:

String a="Yeahh, I have no a idea what's happening now!";
System.out.println(a);
a=a.replaceAll("a", "");
System.out.println(a);

在移除'a'之前,结果如下:

是的,我不知道现在发生了什么事情!

实际结果: 移除'a'之后,结果如下:

是的,我没有想法现在发生了什么!

期望结果:

是的,我不知道现在发生了什么事情!

有人可以给我一些建议来达到我期望的结果吗?

5个回答

8
a = a.replace(" a ", " ");

你不需要使用replaceAll(..)方法,它是用于正则表达式的,而且至少在这个例子中你不需要它。
如果你需要处理比示例更复杂的情况,那么可以使用replaceAll(..)并查看java.util.regex.Pattern。例如,匹配所有空白字符可以使用\s

2

您需要确定要删除的特定“a” 尝试这个a.replace(" a ", " ");


1

你要求替换每个 'a',这就是你得到的。

一些解决方案:

  • replaceAll(" a ", " ")(注意 'a' 周围的空格)
  • 使用正则表达式检查被单词边界包围的 'a'(如果我没记错,应该是 \b)

0

尝试使用以下代码:

String str = "Yeahh, I have no a idea what's happening now!";

String newStr = str.replaceAll(" a ", " ");


-2
a.replace("Yeahh", "Yehh");

这只是替换“Yeah”中的a吗?还是字符串中的第一个a?


他想要将“no a idea”中的“a”替换掉。 - Bozho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接