String.split() 分隔符不能保存后面的空字符串问题

String 自带的Split 分割字符串类中不会把分割字符串后的空字符串添加到数组当中,

例1:

String[] str = msg.split("000|111|222||")

进行分割后字符串的长度为2,只能得到str[0],str[1],str[2],后面的str[3],str[4]是不存在的,

如果直接访问str[3],str[4]会发生以下错误:

java.lang.ArrayIndexOutOfBoundsException

解决方法:

String[] str = msg.split("000|111|222||",4);//4:指定分隔的次数,这样就可以把控字符串也传入数组里面

(网上找的方法,没测试过)

解决问题:使用org.apache.commons.lang.StringUtils.splitPreserveAllTokens 方法

String 操作类 commons-lang.jar

例2:

String[] str = msg.split("000|111|222||333")进行分割后字符串的长度为4,可以得到str[0],str[1],str[2],str[3],str[4]

你可能感兴趣的:(String)