我正在寻找一个更简单的解决方案。我是Java的新手,我需要一些帮助。我试图通过这个'],''将String拆分为String []。问题是Java试图让它们像正则表达式一样,我不想使用它,因为我不够好。我想把这三个字符分开字符串“],[”; 这是我的代码:
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(token);
这是错误输出:线程中的异常“AWT-EventQueue-0”java.util.regex.PatternSyntaxException:索引2附近的未闭合字符类 ],[...请,任何有关如何使这种思考有效的建议?
PS。有没有其他方法来分割字符串?我不太喜欢这个正则表达式。我已经使用过Qt和C#,在这两个地方都有办法摆脱这种常规表现。非常感谢人们!
答案 0 :(得分:4)
你想要“\] \,\ [\。”。
String usefulData = ...;
String[] list = usefulData.split("\\],\\[");
这是因为[
和]
是RegEx中的特殊字符。您必须使用\\
将它们转义为常规字符。
答案 1 :(得分:4)
您可以使用Pattern#quote
方法构建String。
通过这种方式,您不必使用反斜杠escape
特殊字符。 Pattern.quote
使字符串中的所有special characters
行为与字符串文字相似: -
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
答案 2 :(得分:2)
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(java.util.regex.Pattern.quote(token));