`

interview---reg---split("|")

阅读更多
试题如下: 

"|DF|A".split("|").length的结果是() 

A 2  B 3  C 5  D 6 


解析: |代表正则中的或运算符

String[] arr = "a1b2cc1dd".split("1|2");//以1或者2分隔字符串
那么他两边没写东西,当然代表空或者空来分隔。。。只不过大家都不这么写,因为如果你写成String[] arr = "a1b2cc1dd".split("1|1"); //别人会说你有毛病,虽然语法没错
上面的"|DF|A"可以理解成: "空|空D空F空|空A".split("空");
就是把每个空的左边右边分别放到数组里面去,而第一个空的左边是"",右边是|
....
结果在数组里面为 s = {"","\\|","D","F","\\|","A"}

注意: “a4564865”.split("a").length ---> 2
       “4564865a".split("a").length--->1 如果是最后一个是分隔符,他不会分出右边的空格的,也就是说第一个之前有空格,最后一个之后没空格


"|DF|A|||".split("[|]").length = 3 
根据上面的理论,右边最后一个是分隔符,那么他只会分出左边来,所以
"|DF|A|||" === "|DF|A||" === "|DF|A|" == "|DF|A"(不全等是因为在没有匹配的时候split会报错,所以我们可以把分隔符加在最后来防止split报错)

"||DF|A|||".split("[|]").length = 4 
左边的会分出左右两边。。。。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics