关于Java中split方法对空字符串处理问题
2014-03-18 10:43
495 查看
当前在进行的项目中,在使用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
相关文章推荐
- Spring mvc (四)
- MyEclipse快捷键与插件大全
- Myeclipse中JSP页面快捷键注释失效解决方法
- java实现插入排序
- Spring学习笔记(四)--MVC概述
- Spring mvc(二)
- JVM内存结构和6大区域
- Eclipse中10个最有用的快捷键组合
- spring 视图1-json视图
- Java 静态语句块、语句块、构造函数
- Eclipse 安装/更新 Wowza IDE 插件的步骤
- Eclipse 安装/更新 Wowza IDE 插件的步骤
- 杭电ACM1016解题报告(Java)
- Struts1 标签库说明
- java学习论坛
- JAVA游戏入门开发DAY 4 添加主角
- Struts2中的OGNL详解
- 深入探讨 Java 类加载器
- struts2配置定义过滤器无效
- Java第九课