有如下的字符串:
“aaa    bbb ccc                         ddd   eee”.
字符串间用不定长度的空格分隔,现在要将字符串按照按空格分隔,得到这样一个字符串数组[aaa,bbb,ccc,ddd,eee]。哪位大侠能相告。

解决方案 »

  1.   

    split好像是支持正则表达式的,
      

  2.   


    System.out.println(Arrays.toString("aaa  bbb  ccc    ddd                 eee".split("\\s+")));
      

  3.   

    public static void main(String[] args) {
    Pattern pa = Pattern.compile("SN[1-9]{0,5}");
    pa.matcher("SN12345 ");
    System.out.print(pa.matcher("SN12345").matches()); String str = "aaa bbb ccc ddd eee";
    String[] strstr = str.split(" ");
    for (int i =0; i < strstr.length; i++) {
    System.out.println("strstr[" + i + "]: " + strstr[i]);
    }
    }结果:
    strstr[1]: bbb
    strstr[2]: ccc
    strstr[3]: ddd
    strstr[4]: eee
      

  4.   

    上一个多写了,看下面一个public static void main(String[] args) {String str = "aaa bbb ccc ddd eee";
    String[] strstr = str.split(" ");
    for (int i =0; i < strstr.length; i++) {
    System.out.println("strstr[" + i + "]: " + strstr[i]);
    }
    }结果:
    strstr[1]: bbb
    strstr[2]: ccc
    strstr[3]: ddd
    strstr[4]: eee
      

  5.   

    结果:
    strstr[0]: aaa
    strstr[1]: bbb
    strstr[2]: ccc
    strstr[3]: ddd
    strstr[4]: eee
      

  6.   

    正则
    your_string.split("\\s+"); // \\s表示空格或其他tab一类的分隔符,+表示1个或多个
      

  7.   

    死循环,2个空格替换成1个空格(replace,replaceall方法),不存在连续两个空格indexof("  ") = -1时,break;然后再split
      

  8.   

    不能单独用空格拆的。你得先把多空格的替换掉,然后再拆,正则最方便public class DoubleNbsp
    {
    public static void main(String[] args)
    {
    String str="abc dd  egd pfge   ljjj";
    String str1=str.replaceAll("\\s{1,}"," ");
    String[] fa=str1.split(" ");
    for(int i=0;i<fa.length;i++)
    {
    System.out.print(fa[i]);
    if(i<fa.length-1)
    System.out.print(",");
    }
    }
    }
      

  9.   


    import org.apache.commons.lang.*;String str = "aa bb  cc  dfe     fdfadf";
    String[] string = StringUtils.spilt(str," ");
    这样得到的字符串数组就没有空格。