老紫竹的专栏

享受Java的快乐每一天

原创 关于split分割字符串,空结果不能得到的问题收藏

先看源代码

/**
 * 
 * @author 赵学庆 www.java2000.net
 *
 */
class T {
  public static void main(String args[]) {
    String num[] = new String[11];
    String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
    num = sLine.split("\\|");
    int row = 1;
    for (String s : num) {
      System.out.println(row+++"="+s);
    }
  }
}

运行结果为

 1=101494

2=360103660318444

3=2008/06/17

4=周润英

5=1292.0

 6=3085.76

7=2778.28

8=912.91

9=106.0

查看API,有一个

public String[] split(String regex, int limit);

limit 参数控制应用模式的次数,从而影响结果数组的长度。

如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入。

如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度。

如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串。  修改代码为

/**
 * 
 * @author 赵学庆 www.java2000.net
 *
 */
class T {
  public static void main(String args[]) {
    String num[] = new String[11];
    String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
    num = sLine.split("\\|",-1); // 这里使用-1作为参数
    int row = 1;
    for (String s : num) {
      System.out.println(row+++"="+s);
    }
  }
}

运行结果

1=101494

2=360103660318444

3=2008/06/17

4=周润英

5=1292.0

6=3085.76

7=2778.28

8=912.91

9=106.0

10=

11=

12=

结果正常







发表于 @ 2008年07月06日 20:43:00|评论(loading...)|收藏

新一篇: 反射调用私有实现类的方法出异常的分析 | 旧一篇: 辞职日记----记录31岁的程序员跳槽心态

用户操作
[即时聊天] [发私信] [加为好友]
老紫竹
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
老紫竹的公告
喜爱JAVA....
帮助别人,帮助自己。
少些抱怨,多些理解,开心就好。
老紫竹的家
JAVA世纪网
文章分类
收藏
友情链接
JAVA世纪网
ZangXT的专栏(RSS)
关文柏的专栏
堕落佛的博客
孙钰佳的博客
孟岩
曾登高
椅子的博客
简单就是美!
老紫竹研究室(RSS)
陈绍英-性能测试实战
陈跃峰老师的博客
存档
Csdn Blog version 3.1a
Copyright © 老紫竹