String str = "1;;23;245;;0";
String[] arrStr = str.split(";");
System.out.println(arrStr.length);我这边结果是6

解决方案 »

  1.   

    哦,原来我用了org.apache.commons.lang.StringUtils.split(string,string)。
      

  2.   

    private String[] split(String str, char c) {
    if (null == str)
    return null;
    char[] b = str.toCharArray();
    List<String> list = new ArrayList<String>();
    StringBuffer sb = new StringBuffer("");
    for (int i = 0; i < b.length; i++) {
    if (b[i] == c) {
    list.add(sb.toString());
    sb.setLength(0);
    } else {
    sb.append(b[i]);
    }
    } if (sb.length() > 0) {
    list.add(sb.toString());
    }
    return list.toArray(new String[list.size()]);
    }这样写有问题么?
      

  3.   

    JDK的  空的也算   apache的  空的忽略
      

  4.   

    你看一下api  ,api上说 空的会忽略。