以前以为会了split()方法了,后来遇上问题才知道自己还没有弄明白.
public class SplitTest { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
String strCount="";
String str = "abc  edf abc1    ab 23      ef";
String[] strtemp = str.split(" ");
for (int i = 0; i < strtemp.length; i++) {
System.out.println(strtemp[i]);
strCount+=strtemp[i];//如果不加此行,程序能去掉空格,输出abcedfabc1ab23ef但是我想让他们之间的空格都变成一个空格
                                           //结果输出的不是abc edf abc1 ab 23 ef
}
System.out.println(strCount);
}
}

解决方案 »

  1.   

    split 的参数是正则表达式,要弄明白 split 得先弄懂正则表达式。
      

  2.   

    以前以为会了split()方法了,后来遇上问题才知道自己还没有弄明白. 
    public class SplitTest { /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String strCount=""; 
    String str = "abc  edf abc1    ab 23      ef"; 
    String[] strtemp = str.split(" "); 
    for (int i = 0; i < strtemp.length; i++) { 
    System.out.println(strtemp[i]); 
    strCount+=strtemp[i];} 
    System.out.println(strCount); //程序输出abcedfabc1ab23ef

    }
      

  3.   

    使用 split 来做这个,还不如使用 replaceAll 方法public class Test {
        public static void main(String[] args) {
            String str = "abc  edf abc1    ab 23      ef";
            str = str.replaceAll(" {2,}", " ");
            System.out.println(str);
        }
    }
      

  4.   

    public class SplitTest { /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String strCount=""; 
    String str = "abc  edf abc1    ab 23      ef"; 
    String[] strtemp = str.split(" "); 
    for (int i = 0; i < strtemp.length; i++) { 
    System.out.println(strtemp[i]); 
    strCount+=strtemp[i]+" ";} //每个后面加上空格后,程序怎么不会输出abc edf abc1 ab 23 ef
    System.out.println(strCount); } 
    }
      

  5.   

    public class Test {
        public static void main(String[] args) {
            String str = "abc  edf abc1    ab 23      ef";
            String[] strs = str.split(" {2,}");
            // or using:
            // String[] strs = str.split(" +");
            StringBuffer sb = new StringBuffer();
            for(int i = 0; i < strs.length; i++) {
                if(i > 0) {
                    sb.append(" ");
                }
                sb.append(strs[i]);
            }
            System.out.println(sb.toString());
        }
    }
      

  6.   

    if(!strtemp[i].trim().equals(""))加个判断就可以了吧