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)
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)
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());
}
}
}
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());
}
}
}
万一输入的是字符呢?
try{dbInput1 = Double.parseDouble(s);
}
catch(Exception e){System.out.print("请输入数字");