拆分字符串java

Adu*_*e11 3 java string split

我刚刚注意到.split()函数有些奇怪,如果我传递一个| 它,它将字符串拆分为字符.我测试了它:

String s = "Hiya there | how are you | im fine thanks";
for(String str : s.split("|")) {
    System.out.println(str);
}
Run Code Online (Sandbox Code Playgroud)

它将它分成不同的字符.我试过反斜杠,它没有用.

有谁知道如何实际拆分| ?

Roh*_*ain 9

String#split将正则表达式作为参数,其中|具有特殊含义并用于alternation.

您可以使用两种方法让自己摆脱它: -

  1. 逃避|.请记住,在Java中,您需要使用双反斜杠: -

    s.split("\\|");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用Character类: -

    s.split("[|]");
    
    Run Code Online (Sandbox Code Playgroud)

在字符类中,除了-在中间使用时的任何字符都没有任何特殊含义.所以,[|]只是一个|而不是别的.

是的,你还需要逃避]字符类由@JanDvorak在评论中指定.