关于String split 的疑问

  String s="xxx,sss,,,,";
        String [] ss = s.split(",");
        for(int i = 0 ; i < ss.length ; i++){
            
            System.out.println(ss[i]);
        }

 

  String s="xxx|sss||||";
        String [] ss = s.split("|");
        for(int i = 0 ; i < ss.length ; i++){
            
            System.out.println(ss[i]);
        }

第一个结果是

xxx

sss

 

为什么第二用|划分结果是

x

x

x

s

s

s

....

"|" 换成 "\|"

split接收的是正责表达式 需要转义!

[code="java"]String s="xxx|sss||||";

String [] ss = s.split("\|");

for(int i = 0 ; i < ss.length ; i++){

    System.out.println(ss[i]);   
}  

[/code]

|是正则里的元字符啊,需要转义才能用。。好像是叫元字符的。。

楼上说得对

要转义哦\|

可以使用Pattern.quote("|")。遇到复杂的,也不用转那么多了。比转义好看点。