如何使用Java分割具有特殊字符的String?
我有非常简单的验证码,就像这样:
5 + 10
String captcha = "5 + 10";
String[] captchaSplit = captcha.split("+");
我得到错误:
线程“main”中的异常java.util.regex.PatternSyntaxException: 在索引0附近悬挂元字符'+'
如何解决?
谢谢。
答案 0 :(得分:4)
+
是正则表达式中的保留字符,split
将regExp
作为参数。您可以通过\\+
转义它,现在它将与+
匹配。
答案 1 :(得分:3)
在方括号中输入
String captcha = "5 + 10";
String[] captchaSplit = captcha.split("[+]");
答案 2 :(得分:0)
如果需要使用多个特殊符号/字符拆分String,使用包含 Splitter 类的Guava库会更方便:
@Test
public void testSplitter() {
String str = "1***2***3";
List<String> list = Lists.newArrayList(Splitter.on("***").split(str));
Assert.assertThat(list.size(), is(3));
}