如何在java中拆分字符串\

时间:2012-03-22 14:51:59

标签: java

我在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]);

我把另一个\作为转义字符但不起作用。

帮帮我。

4 个答案:

答案 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]);

works fine

解释

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代码(转义反斜杠等)。