解析票据号数组:将用“,”和“-”隔开的票据号段解析成票据数组。
 例:“001,002-004,0005,0007-0009,0010”(字符串)
解析成“001,002,003,004,0005,0007,0008,0009,0010”(字符串数组)
需要处理的EXCEPTION:
非数字:a,b;
重复:001-003,002-004或001-003,002(002重复);
长度不一致:001-0003;
pulic String[] methodName(String str) throws Exception{}
请问如何实现这个方法啊?

解决方案 »

  1.   

    使用String.split函数,或者加上java.util.regex.*的正规式去处理
      

  2.   

    用split()函数只能得到 “001,002-004,...”这样的一个字符串数组啊,那么“002-004”难道还要用一次
    split()么?并且得到的也是类似“001,002,004“之类的,并没有取到003啊~
      

  3.   

    import java.util.*;
    import java.text.*;public class Deal {
    static Set<String> set = new LinkedHashSet<String>();
    static DecimalFormat textFormat = new DecimalFormat("0000");

    public static void deal(String str){
    str = str.replaceAll("-", ",");

    String[] strArray = str.split(",");

    for(String s : strArray){
    if (s.matches("[0-9]+")){
    set.add(textFormat.format(Integer.parseInt(s)));
    }
    } }

    public static void main(String args[]){
    String str = "001,002-004,0005,0007-0009,0010-0010,a-b";

    deal(str);

    System.out.print(set.toString());
    }
    }
    [0001, 0002, 0004, 0005, 0007, 0009, 0010]简单的处理一下 不合格的数据全部去掉  至于其他的要求你再处理一下吧  记得给俺分  你这个0%的结贴率  汗...