一个字符串用“,”号分割 ,一次10位的截取,如果10位处,没有逗号,找前面最近一个逗号截取。
例如123,1234,12345,12,135,123,12,12121,12134,1232132,11414314314按10位截取应该为123,1234
12345,12
135,123,12前后的逗号也得去掉,这样怎么实现啊。

解决方案 »

  1.   

    用sqlit(",")截取成字符串数组,然后用循环 从[0]开始数数组里的字符个数,也就是总共字符的10,20,30
    个字符是否是“,”不是的话,就把前面的数组输出,当然要加上逗号。
      

  2.   

    怎么会有这么怪的应用,代码如下:、
    public class Main {
        public static void main(String[] args) {
            String strTest = new String("123,1234,12345,12,135,123,12,12121,12134,1232132,11414314314");        String[] strSplit = strTest.split(",");        StringBuilder sb = new StringBuilder();        for (int i = 0; i < strSplit.length; i++) {
                sb.append(strSplit[i]);
            }        String strResult = sb.toString();        System.out.println(strResult);        for (int i = 0; i < strResult.length(); i += 10) {
                System.out.println(strResult.substring(i, i + 10));
            }
        }
    }
      

  3.   

    用正则表达式,最方便
    import java.util.regex.*;public class test
    {
    public static void main(String[] args) {
    String str = "123,1234,12345,12,135,123,12,12121,12134,1232132,11414314314";
    String reg = "([\\d,]{1,10}),";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(str);
    while(m.find())
    System.out.println(m.group(1));
    }
    }/*
    结果:
    123,1234
    12345,12
    135,123,12
    12121
    12134
    1232132
    */
      

  4.   

    我对需求的理解 public static void main(String[] args) {
    String[] rs = new String(
    "123,1234,12345,12,135,123,12,12121,12134,1232132,11414314314")
    .split(",");
    String str = "";
    List list = new ArrayList();
    for (int i = 0; i < rs.length; i++) {
    String tmp = str + (str.equals("") ? "" : ",") + rs[i];
    if (tmp.length() <= 10) {
    str = tmp;
    } else {
    System.out.println(str);
    list.add(str);
    str = rs[i];
    }
    }
    }
    输出
    123,1234
    12345,12
    135,123,12
    12121
    12134
    1232132