1.采用论坛上某位老兄的方法输入,输入数字是用逗号隔开的。
import java.lang.*;
import java.io.*;
import java.util.*;public class SumOutput{
      
       public static void main(String args[]){
            
       byte[] buf = new byte[256];
       try {
         // input
         String str="";
         int sum=0;
         // double sum=0;
         int k;
        
         
         System.out.println("Enter Your Test Number:");
         do{
            int c = System.in.read(buf,0,buf.length);
            str += new String(buf,0,c);
         }while(System.in.available()>0) ;
         str = str.substring(0,str.length()-1); // remove the last return
         
         // processing
         StringTokenizer token = new StringTokenizer(str,(str.indexOf(",") != -1)?",":" ");
         while(token.hasMoreTokens()) {
            String cur = token.nextToken();
                   
           if(cur.indexOf(".") != -1 ) { // float or double
               double v = Double.parseDouble(cur);
          /*  sum=sum+v;
              System.out.println("The Number is" +sum);
          */
               System.out.println("Your Input Number Error");
               System.exit(0);
                }
            else {  // char, short, integer or long
               k=Integer.parseInt(cur);
               sum=sum+k;
               
              }
               //           
         }System.out.println("The Number is :" +sum);
      }catch(Exception e){e.printStackTrace();}
 }
}但此程序不能达到预想的结果,反而是如果输入的是float/double型的数据能得出正确的结果(改判断后面的语句测试)。输入的是int就出现错误,如下:
C:\>java SumOutput    (浮点数)
Enter Your Test Num
1.2,2.3
The Number is 3.5
C:\>java SumOutput
Enter Your Test Number:       (整数)
12,23
12
"ava.lang.NumberFormatException: For input string: "23
        at java.lang.NumberFormatException.forInputString
java:48)
        at java.lang.Integer.parseInt(Integer.java:435)
        at java.lang.Integer.parseInt(Integer.java:476)
        at SumOutput.main(SumOutput.java:36)

解决方案 »

  1.   

    第一个程序:
    import java.io.*;public class Test{
    public static void main(String[] args)
    {
    BufferedReader stdin = new BufferedReader(
    new InputStreamReader(
    new BufferedInputStream(System.in)));
    double dbInput1 = 0.0, dbInput2 = 0.0;
    String s;
    try{
    System.out.println("Please input the first number:");
    if((s = stdin.readLine()) != null)
    {
    dbInput1 = Double.parseDouble(s);
    }

    System.out.println("Please input the second number:");
    if((s = stdin.readLine()) != null)
    {
    dbInput2 = Double.parseDouble(s);
    }
    System.out.println(dbInput1+dbInput2);
    }catch(IOException e)
    {
    System.out.println(e.getMessage());
    }
    }
    }
      

  2.   

    第二个程序:
    import java.io.*;public class Test{
    public static void main(String[] args)
    {
    String ss= "Hello";
    try{
    File f = new File("e:\\1.txt");
    File f2 = new File("e:\\2.txt");
    BufferedReader fin = new BufferedReader(
    new InputStreamReader(
    new BufferedInputStream(
    new FileInputStream(f))));
    PrintWriter fout = new PrintWriter(
    new FileOutputStream(f2));
    String s;
    while((s = fin.readLine()) != null)
    {
    if(s.indexOf(ss) != -1)
    {
    fout.println(s);
    fout.flush();
    }
    }
    }catch(FileNotFoundException e){
    System.out.println(e.getMessage());
    }
    catch(IOException e)
    {
    System.out.println(e.getMessage());
    }
    }
    }
      

  3.   

    sayo(嗨呦,嗨呦……) :
    万一输入的是字符呢?
      

  4.   

    我觉得应该加个判断:
    try{dbInput1 = Double.parseDouble(s);
    }
    catch(Exception e){System.out.print("请输入数字");