Java字符串替换问题,如(,),?

时间:2013-12-06 11:57:15

标签: java regex string

我正在尝试编写一个程序,我正在读取文件并用其他文本替换文件的某些文本。我为此目的使用String.replaceAll方法。正在从.txt文件中读取要替换的字符串。

现在,对于普通字符串,没有任何特殊字符,一切正常。如果要替换的字符串如下:

如果是,何时?

OR

值不正确(应介于0-18之间)

然后,不会发生此字符串的替换。我想这是由于 characterm和()在这里被用作正则表达式。我希望它使用普通字符串而不是正则表达式。

2 个答案:

答案 0 :(得分:1)

如果您不必使用正则表达式,则始终首选使用String.replace()而不是String.replaceAll(),因为您将摆脱所有正则表达式开销。

答案 1 :(得分:1)

使用String.replace(),而不是String.replaceAll()

replaceAll()使用 regex 进行搜索,而那些遇到问题的字符在正则表达式中具有特殊含义。

replace()使用纯文本进行搜索,但仍会替换所有出现的目标。

这是一个常见的错误,并且表明这些方法名称不当导致这种混淆。