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]