1

有一个String text System.out.println(text);看起来像这样

So the traveller sat down by the side of that old man,
face to face with the serene sunset; 
and all his friends came softly back and stood around him. 

其他String subText

System.out.println(subText);只是上面字符串的一部分,看起来像这样

So the traveller sat down by the side of that old man,
face to face with the serene sunset;

我需要摆脱这subText部分text = text.replaceAll(subtext, "");,但这对文本没有任何作用?

4

2 回答 2

6

在这种特殊情况下,这并不重要,但您确实应该使用replace而不是replaceAll

text = text.replace(subtext, "");

replaceAll方法使用正则表达式,某些字符具有特殊含义。

在这种特殊情况下,您不会看到任何差异,因为 中必须有一些细微的不同 subtext,因此无法在 中找到它text。也许有额外的空格或换行符的编码方式不同。从System.out.println.

于 2013-10-12T19:45:57.610 回答
2

它不起作用的原因是“replaceAll()”期望搜索词是正则表达式

您应该使用replace(),它使用搜索纯文本并顺便仍然替换所有出现,而不是:

text = text.replace(subtext, "");

至于为什么它不起作用replaceAll(),谁知道。要进行诊断,您可以查看它是否实际上在您的文本中,如下所示:

System.out.println(text.contains(subtext));
于 2013-10-12T20:04:03.897 回答