首页 > 编程 > Java > 正文

Java split用竖线分割字符串的问题

2019-11-06 06:16:51
字体:
来源:转载
供稿:网友

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()中使用竖线作为分隔符就要用"//|"来表示


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表