我正在尝试编写一个程序,我正在读取文件并用其他文本替换文件的某些文本。我为此目的使用String.replaceAll
方法。正在从.txt文件中读取要替换的字符串。
现在,对于普通字符串,没有任何特殊字符,一切正常。如果要替换的字符串如下:
如果是,何时?
OR
值不正确(应介于0-18之间)
然后,不会发生此字符串的替换。我想这是由于? characterm和()在这里被用作正则表达式。我希望它使用普通字符串而不是正则表达式。
答案 0 :(得分:1)
如果您不必使用正则表达式,则始终首选使用String.replace()
而不是String.replaceAll()
,因为您将摆脱所有正则表达式开销。
答案 1 :(得分:1)
使用String.replace()
,而不是String.replaceAll()
!
replaceAll()
使用 regex 进行搜索,而那些遇到问题的字符在正则表达式中具有特殊含义。
replace()
使用纯文本进行搜索,但仍会替换所有出现的目标。
这是一个常见的错误,并且表明这些方法名称不当导致这种混淆。