我在java中拆分字符串时遇到问题。它给出了java.util.regex.Pattern.error
。
String name = One\Two\Three.
String[] str = name.split("\\");
for(int i =0; i < str.length ; i++)
System.out.println(str[i]);
我把另一个\作为转义字符但不起作用。
帮帮我。
答案 0 :(得分:7)
One\Two\Three
不是有效的字符串文字(你需要引号,你需要转义反斜杠)。
String name = "One\\Two\\Three.";
String[] str = name.split("\\\\");
for(int i =0; i < str.length ; i++)
System.out.println(str[i]);
String#split
需要正则表达式。反斜杠字符在正则表达式中具有特殊含义,因此您需要使用另一个反斜杠来转义它:\\
现在因为反斜杠字符在Java字符串文字中也有特殊含义,您必须将这些字符串加倍。 em>再次,产生"\\\\"
。
答案 1 :(得分:1)
您错过了报价
String name = "One\\Two\\Three".
答案 2 :(得分:0)
你需要逃避它两次:
String name = "One\\Two\\Three."
String[] str = name.split("\\\\");
for(int i =0; i < str.length ; i++)
System.out.println(str[i]);
答案 3 :(得分:0)
如果您想测试您的模式,您应该使用此工具:
http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html
你不能在那里编写测试字符串和你的测试模式,它可以调用方法matches(),lookingAt(),find()和reset()。它还将您的模式转换为Java代码(转义反斜杠等)。