关于Java中split方法对空字符串处理问题
2010-03-09 10:25
531 查看
当前在进行的项目中,在使用split方法时遇到一个比较隐蔽的问题,最后问题解决了,得到的一个启迪就是在使用这些函数时,真的需要认真参考文档,都怪自己太粗心,下面总结一下以加深记忆
问题描述:
从数据库返回的数据串,需要计算数据的个数,也就是数据表中的记录条数,每条记录包括3个字段,每个字段使用间隔字符串“γξζν”进行分隔,比如:
data=“1γξζνaaaγξζνaaaγξζν2γξζνbbbγξζνbbbγξζν”,进行拆分
result=data.split("γξζν"),则可以用result.length%3是否为0来判断data是否包括三个字段的数据,这样没有任何问题,但如果某些字段没有数据,比如:
data=“1γξζνaaaγξζνaaaγξζν2γξζνbbbγξζνγξζν”,进行拆分result=data.split("γξζν"),如此result.length%3并不是我所想象的为0,究其原因,是因为split方法
public String
[] split
(String
regex) 该方法的作用就是使用给定的表达式和限制参数 0 来调用两参数
split方法。因此,所得数组中不包括结尾空字符串
public String
[] split
(String
regex,
int limit) limit
参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n
大于 0,则模式将被最多应用
n
- 1 次,数组的长度将不会大于 n
,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n
为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n
为
0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃
因此result=data.split("γξζν",-1),就可以得到正确结果
注意:result.length=7,不是6,包括了最后一个γξζν后面的空字符串,因此判断记录条数用result.length-1%3是否为0
问题描述:
从数据库返回的数据串,需要计算数据的个数,也就是数据表中的记录条数,每条记录包括3个字段,每个字段使用间隔字符串“γξζν”进行分隔,比如:
data=“1γξζνaaaγξζνaaaγξζν2γξζνbbbγξζνbbbγξζν”,进行拆分
result=data.split("γξζν"),则可以用result.length%3是否为0来判断data是否包括三个字段的数据,这样没有任何问题,但如果某些字段没有数据,比如:
data=“1γξζνaaaγξζνaaaγξζν2γξζνbbbγξζνγξζν”,进行拆分result=data.split("γξζν"),如此result.length%3并不是我所想象的为0,究其原因,是因为split方法
public String
[] split
(String
regex) 该方法的作用就是使用给定的表达式和限制参数 0 来调用两参数
split方法。因此,所得数组中不包括结尾空字符串
public String
[] split
(String
regex,
int limit) limit
参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n
大于 0,则模式将被最多应用
n
- 1 次,数组的长度将不会大于 n
,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n
为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n
为
0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃
因此result=data.split("γξζν",-1),就可以得到正确结果
注意:result.length=7,不是6,包括了最后一个γξζν后面的空字符串,因此判断记录条数用result.length-1%3是否为0
相关文章推荐
- 转: 关于Java中split方法对空字符串处理问题
- 关于Java中split方法对空字符串处理问题
- java 关于split分割字符串,空结果不能得到的问题,多个分隔符的处理
- (转)java关于split分割字符串,空的字符串不能得到的问题
- Java 图片流输出ByteArray字符串到前台转图片方法及问题处理
- java关于split分割字符串问题
- 关于java中String类型的split方法问题
- java关于split分割字符串,空的字符串不能得到的问题
- java关于split分割字符串,空的字符串不能得到的问题
- Java中split方法对结尾空字符串不正确处理的解决方案
- 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!
- java关于split分割字符串,空的字符串不能得到的问题
- 关于对字符串、数组处理的常见问题与方法,如获取带有空格字符串长度,数组长度等。getline(),sprintf()使用。
- java关于split分割字符串,空的字符串不能得到的问题
- java关于字符串转换数组的问题,ss.split(".")转换失败
- 关于JAVA中split方法使用竖线异常的问题
- 关于Java的中英文混合截取字符串的问题解决方法
- 关于JAVA中的MVC结果,Controller方法返回字符串到前端js出现乱码问题
- 关于java以竖线作为分隔符split字符串的问题
- Java 字符串Split方法的一个坑