下面的代码有什么问题?
String selectedCountriesStr = countries.replaceAll("[", "").replaceAll("]", "").trim();
String[] selectedCountriesArr = selectedCountriesStr.split(",");
输入字符串 [10000,20000,304050,766666]
获取错误 java.util.regex.PatternSyntaxException: Unclosed character class near index 0
3条答案
按热度按时间4xy9mtcn1#
split函数可以像这样轻松地拆分字符串
vdzxcuhz2#
方括号是regex元字符,需要在它们前面加反斜杠:
另外,因为这是一个简单的字符串替换,所以最好使用
.replace()
:cygmwpex3#
你必须避开方括号,因为
replaceAll()
将第一个参数解释为正则表达式:因为,正如错误消息告诉您的那样,用于正则表达式中的字符类。双反斜杠是必要的,因为
"\["
将是无效的转义序列。由于反斜杠被转义,regex引擎只接收一个反斜杠。另外,你可以使用
它还将按原样替换给定charsequence的所有出现。
您可以在javadoc中阅读更多关于它的内容。