我正在使用
str.replaceAll("GeoData[", "");
在我的文本文件中的某些字符串中替换“[”符号,但我得到:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 7
GeoData[
^
at java.util.regex.Pattern.error(Pattern.java:1713)
我该如何解决这个问题?
答案 0 :(得分:17)
方法replaceAll
将参数解释为正则表达式。在正则表达式中,如果您想要它的字面意思,则必须转义[
,否则它将被解释为字符类的开头。
str = str.replaceAll("GeoData\\[", "");
如果您不打算使用正则表达式,请改用replace
,正如Bozho在answer中提到的那样。
答案 1 :(得分:11)
使用非正则表达式方法String.replace(..)
:str.replace("GeoData[", "")
(人们往往会错过这种方法,因为它需要CharSequence
作为参数,而不是String
。但String
实现CharSequence
)