Android字符串分隔之split

一.java.lang.String提供的split

在字符串分隔时,我们有时需要指定忽略或者不忽略某些分隔符,例如:

String string=":ab:cd:ef::";

①末尾分隔符全部忽略

System.out.println(string.split(":").length);

输出为4

String s[]={,ab,cd,ef};

②不忽略任何一个分隔符

System.out.println(string.split(":",-1).length);

输出为6

String s[]={,ab,cd,ef,,};


String的split方法用到的参数是一个正则式,虽然强大,但是有时候容易出错。例如

如果, 

String str = "aa.bb.cc.dd"; 

String[] strArray = str.split("."); 

则strArray.length结果为:0 

原因是String 的 split(String regex) 参数 String regex 是正则表达式 (regular expression) ,而不是普通字符串,而 "." 在正则表达式中有特殊含义,表示匹配所有单个字符。如果要那样拆分,我们必须给 "." 进行转义,String[] strArray = str.split(".") 修改为 String[] strArray = str.split("\\.") 即可。


二.org.apache.commons.lang.StringUtils提供的split(commons-lang.jar包)

它使用完整的字符串作为参数,而不是regex。

String string=":ab:cd:ef::";
①最前面和末尾的分隔符全部忽略

System.out.println(StringUtils.split(string.length);
输出为3

②不忽略任何一个分隔符

System.out.println(StringUtils.splitPreserveAllTokens(string, ":").length);
输出为6



另附上一篇commons-lang.jar包中部分类方法的介绍:

http://blog.csdn.net/u012816314/article/details/50331393



你可能感兴趣的:(数据处理)