基本代码错误

时间:2015-12-01 11:01:36

标签: java

这是我尝试的基本程序

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值而不是我在输入中输入的值

2 个答案:

答案 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);
    }