给你段代码吧:
public class SpaceCharactor {  public static void main(String[] args) {
    String temp = "12  3  4 5  6  7   8 9";
    StringBuffer sb = new StringBuffer();
    boolean bFound = false;    for(int i = 0; i < temp.length(); i++) {
      if (temp.charAt(i) != ' ') {
        bFound = false;
        sb.append(temp.charAt(i));
      }else {
        if(!bFound) {
          bFound = true;
          sb.append(temp.charAt(i));
        }
      }
    }// end for
    
    System.out.println(sb);
  }}

解决方案 »

  1.   

    我今天正好写了一个replaceString()的函数,也拿来用一下。这个函数可以重用哦。import java.util.*;class  ConvertString1
    {
    public String replaceString( String src, String older, String newer){
    boolean endsWithTkn = src.endsWith(older);
    boolean startsWithTkn = src.startsWith(older);
    String strRtn = "";
    StringTokenizer stkn = new StringTokenizer( src, older); while (stkn.hasMoreTokens()){
    strRtn += stkn.nextToken() + newer;
    } if (startsWithTkn){
    strRtn = newer + strRtn;
    }  if (endsWithTkn){
    return strRtn;


    return strRtn.substring(0,strRtn.length() - newer.length());
    } public static void main(String[] args) 
    {
    String src = "  345  44   4      5 45 6    ";
    String older = "  ";
    String newer = " ";
    String tmp = ""; ConvertString1 app = new ConvertString1();

    tmp = app.replaceString(src, older, newer); System.out.println(tmp);
    }
    }
      

  2.   

    来个简单的:
    import java.util.StringTokenizer;public class stringBlank {  public stringBlank() {
      }
      public static  void  main(String[] args)  {
        String s = "1 2  3    4  6         9  " ;
        String ss = new String() ;
        StringTokenizer st = new StringTokenizer(s," ");
        while (st.hasMoreTokens())      ss +=st.nextToken();
        //ss+="sdfg";
        System.out.println(ss);  }}
      

  3.   

    对呀,只用StringTokenizer类就能实现
      

  4.   

    sigh,有必要这么复杂么?为什么不用StringTokenizer类?简单得很
    import java.util.*;
    public class Test
    {
      public static void main(String args[]) {
        String str1 = " adf 1d sd2 2fe sdf ";
        StringTokenizer st1 = new StringTokenizer(str1);
        String str = "";
        while (st1.hasMoreTokens()) {
          str = str + st1.nextToken();//去除空格
        }
        str = str.trim();//去除前导和追尾空格
        System.out.println(str);
        System.out.println(str1);
      }
    }
      

  5.   

    我也加一个,用在jdk1.40
    import java.util.regex.*;
    class regTry{
      public static void main(String[] args){
        String s="  adf    1d sd2   2fe sdf  ";
        Pattern p=Pattern.compile("\\s{2,}");
        Matcher m = p.matcher(s);
        System.out.println("123456789012345678901234567890");//标尺
        System.out.println("|"+m.replaceAll(" ")+"|");
      }
    }