import java.io.*;
public class ComputeArea { /**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
System.out.println("计算矩形面积");
System.out.print("请输入长: ");
int a,b;
a=(int)System.in.read();
//System.in.read();
System.out.println("请输入宽");
System.in.skip(2);
b=(int)System.in.read();
int c=a*b;
System.out.println("计算矩形面积是:"+c);
}
}
如上计算面积,算的结果不对,不知道为何,请大家帮忙 谢谢
public class ComputeArea { /**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
System.out.println("计算矩形面积");
System.out.print("请输入长: ");
int a,b;
a=(int)System.in.read();
//System.in.read();
System.out.println("请输入宽");
System.in.skip(2);
b=(int)System.in.read();
int c=a*b;
System.out.println("计算矩形面积是:"+c);
}
}
如上计算面积,算的结果不对,不知道为何,请大家帮忙 谢谢
b = System.in.read() - '0';就可以了。直接强转时只是获得字符的 Unicode 码值,比如说你输出的是字符 4,强转后就变成数字 52 了,
只为 4 的 Unicode 码值是:U+0034不过这样改还是有问题,只能是一位数字。我帮你重新写一个吧。
输入5×4实际上是计算他们的Asc码53*52
建议用java.util.Scanner封装一下System.in
然后用scanner.nextInt()取值
import java.io.IOException;
import java.io.InputStreamReader;public class Test1 { public static void main(String[] args) throws IOException {
System.out.println("## 计算矩形面积 ##");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = readNum("请输入长:", br);
int b = readNum("请输入宽:", br);
int c = a * b;
System.out.println("矩形的面积是:" + c);
}
private static int readNum(String prompt, BufferedReader br) throws IOException {
int num = 0;
while(true) {
System.out.print(prompt);
String str = br.readLine();
if(str.matches("\\d+")) {
num = Integer.parseInt(str.trim());
break;
} else {
System.out.println("** 输出错误,请重新输入 **");
}
}
return num;
}
}
那一整句就表示str字符串是否是“数字”字符串
public static void main(String args[]){Scanner input=new Scanner(System.in);System.out.println("计算矩形的面积");
System.out.print("输入矩形的长: ");
double a=input.nextDouble();
System.out.print("输入矩形的宽: ");
double b=input.nextDouble();
double c=a*b;
System.out.println("矩形面积为:"+c);
}
}