在java中用String.split來分割字符串,如果分隔符是豎線"|",那么直接使用string.split("|")將會得到錯誤的結果
String string = "abc|123|xyz";String[] strings = string.split("|");for (int i = 0; i < strings.length; i++) { System.out.PRintln("strings[" + i + "]: " + strings[i]);}錯誤結果:strings[0]: astrings[1]: bstrings[2]: cstrings[3]: |strings[4]: 1strings[5]: 2strings[6]: 3strings[7]: |strings[8]: xstrings[9]: ystrings[10]: z正確的做法是使用"//|"作為分隔符
String[] strings2 = string.split("//|");for (int i = 0; i < strings2.length; i++) { System.out.println("strings2[" + i + "]: " + strings2[i]);}正確結果:strings2[0]: abcstrings2[1]: 123strings2[2]: xyz原因:split的參數不是單純的字符串,而是正則表達式,豎線"|"在正則表達式中有特殊含義,所以需要用反斜杠來進行轉義。而在Java使用反斜杠也需要進行轉義,所以在split()中使用豎線作為分隔符就要用"//|"來表示
新聞熱點
疑難解答