存档

文章标签 ‘String’

【scala】【java】关于字符串的split一些研究,一些小坑注意

2016年12月28日 评论已被关闭

数据处理离不开对文本格式的数据进行读取、切分、统计分析。split方法作为切分字符串的方法会被经常使用,但是最近在字符串切分使用split方法的时候发现了一些小坑,在这里记下来,以警示后人。

首先是例子:

val s1=”#1#2#”
val s2=”##1#2″
val s3=”#1##2##”
把“#”作为分隔符,按我们的设想,分割后他们的长度应该是:4,4,6
但是如果用split方法直接分割的话,长度分别为:3,4,4

println(s1.split(“\\$”).length)
println(s2.split(“\\$”).length)
println(s3.split(“\\$”).length)
经过输出对比,String的split方法分割过程会把结尾为分隔符的情况下,去掉结尾的字符串(也就是“”),特别的注意,如果切分后结尾两个“”字符串,那么都会舍弃掉。所以s3的切分结果为:空格,1,空格,2;这四个元素。