0

我正在寻找一个更简单的解决方案。我是 Java 新手,需要一点帮助。我试图通过这个'],['将字符串拆分为字符串[]。问题是 Java 试图像 Regex 一样获得这些,我不想使用它,因为我在它方面还不够好。我只想用这三个字符“],[”分割字符串;这是我的代码:

String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(token);

这是错误输出:线程“AWT-EventQueue-0”中的异常 java.util.regex.PatternSyntaxException: Unclosed character class near index 2 ],[... 请,有什么建议可以让这个想法有效吗?

PS。有没有其他方法可以拆分字符串?我不太喜欢这个正则表达式。我一直在使用 Qt 和 C#,并且在这两个地方都有一种方法可以摆脱这个正则表达式。非常感谢人们!

4

3 回答 3

5

你要 ”\]\,\[”。

String usefulData = ...;
String[] list = usefulData.split("\\],\\[");

这是因为[]是 RegEx 中的特殊字符。您必须将它们转义\\才能将它们用作常规字符。

于 2012-10-15T20:43:55.517 回答
4

Pattern#quote您可以使用方法构建您的字符串。

这样,您就不必escape使用反斜杠来处理特殊字符。Pattern.quote使您的所有special charactersin 字符串表现得像字符串文字:-

String usefulData = "[a],[b],[c,d]";
String token = Pattern.quote("],[");
String[] list = usefulData.split(token);

for (String val: list) {
    System.out.println(val.replaceAll("\\[|\\]", ""));
}

输出: -

a
b
c,d
于 2012-10-15T20:46:30.337 回答
2
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(java.util.regex.Pattern.quote(token));
于 2012-10-15T20:48:02.163 回答