这是我尝试的基本程序
public class keyboardinput {
public static void main(String[] args) throws java.io.IOException {
int a ;
System.out.println ("enter the text");
a = (int) System.in.read();
System.out.println ("the entered value is :"+a );
}
}
执行时,显示以下回复
输入文字
1
输入的值为:49
当我输入1时,为什么不显示输入的值是1
您能不能让我知道为什么输出显示的是等效的asci值而不是我在输入中输入的值
答案 0 :(得分:4)
你不能像在这里一样从一个字节转换为int:
a = (int) System.in.read();
System.in.read()
返回一个整数,但结果将是字符1
的ASCII码,即49。
我建议使用扫描仪:
Scanner s = new Scanner(System.in);
a = s.nextInt();
答案 1 :(得分:1)
49
是符号1
的ASCII码,明确表示int
。要阅读int
值,请使用以下内容:
try (BufferedReader bf = new BufferedReader(new InputStreamReader(System.in))) {
a = Integer.parseInt(bf.readLine());
System.out.println("the entered value is :" + a);
}