Java分裂字符串在|

时间:2015-07-02 09:05:43

标签: java string split

如何在此字符后分割我的字符串:| 如果我只是写:

String[] parts = match.split("|");

String在每个字符后被拆分。

5 个答案:

答案 0 :(得分:3)

请逃离角色:

String[] parts = match.split("\\|");

答案 1 :(得分:2)

使用:

String[] parts = match.split("\\|");

管道符号是正则表达式的特殊字符;如果要使用文字管道符号字符,则需要使用反斜杠转义它。并且因为反斜杠是Java字符串中的特殊字符,所以您需要使用另一个反斜杠来转义它。因此,管道符号前面会出现双反斜杠。

答案 2 :(得分:1)

String.split()收到正则表达式|具有特殊含义。如果您要按|拆分,则必须使用反斜杠\将其转义:

String.split("\\|")

这里需要双反斜杠从java的角度来逃避反斜杠,然后从正则表达式的角度转义|

答案 3 :(得分:1)

推荐的方法是使用:

String[] parts = match.split(Pattern.quote("|"));

这个

public void test() {
    String match = "A|B";
    String[] parts = match.split(Pattern.quote("|"));
    System.out.println(Arrays.toString(parts));
}

打印

  

[A,B]

答案 4 :(得分:0)

你需要escape这个角色。所以你可以使用它: -

String[] parts = match.split("\\|");

因此,如果match未包含|,则parts将仅包含单个元素,即match,否则分割match