import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class bible 
{
  public  static void main (String args[]) throws Exception
  {
   int result[]=null;
   System.out.print("请输入待排序的数字,以空格隔开:");
   System.out.print('\n');
   BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
   String str=null;
   while(true)
   {
   try
   {
         str=in.readLine();
   }
   catch(Exception e)
{
   e.printStackTrace();
   }
   StringTokenizer stringt = new StringTokenizer(str); 
   result=new int[stringt.countTokens()+1];
   for (int i=1;i<result.length;i++)
   {
   result[i]=Integer.valueOf(stringt.nextToken()).intValue(); 
      for(int j=i+1;j<result.length;j++)
      {
     
      if (result[i]>result[j])
   {
      int tmp=0;
      tmp=result[i];
      result[i]=result[j];
      result[j]=tmp;
   }
      }
      System.out.println(result[i]);
     
   }
   }  }
}
一个简单的冒泡排序,却有问题,比如我输入 9 8 7 6 返回结果却是0 0 0 6 帮我改改!

解决方案 »

  1.   

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    public class bible 
    {
      public  static void main (String args[]) throws Exception
      {
       int result[]=null;
       System.out.print("请输入待排序的数字,以空格隔开:");
       System.out.print('\n');
       BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
       String str=null;
       while(true)
       {
       try
       {
             str=in.readLine();
       }
       catch(Exception e)
    {
       e.printStackTrace();
       }
       StringTokenizer stringt = new StringTokenizer(str); 
       result=new int[stringt.countTokens()+1];
      
       for (int i=1;i<result.length;i++)
       result[i]=Integer.valueOf(stringt.nextToken()).intValue(); 
       for (int i=1;i<result.length;i++)
       {
       //result[i]=Integer.valueOf(stringt.nextToken()).intValue(); 
          for(int j=i+1;j<result.length;j++)
          {
         
          if (result[i]>result[j])
       {
          int tmp=0;
          tmp=result[i];
          result[i]=result[j];
          result[j]=tmp;
       }
          }
          System.out.println(result[i]);
         
       }
       }  }
    }
      

  2.   

    补充:
    result[i]=Integer.valueOf(stringt.nextToken()).intValue(); 最好用try{}catch(NumberFormatException e){} 捕获一下.