首页 > 解决方案 > 读取用户输入

问题描述

我对 Java 很陌生,我正在学习如何阅读用户输入的书籍教程。他们的代码是...

class Example {
    public static void main(String args[]) throws java.io.IOException {
        // System.out.println()
        char ch;

        System.out.print("Press a key followed by ENTER: ");
        ch = (char) System.in.read();
        System.out.println("Your key is: " + ch);
    }
}

我试图尝试将用户输入读取为这样的整数......

class Example {
    public static void main(String args[]) throws java.io.IOException {
        int foo;

        System.out.print("Enter a number: ");
        foo = (int) System.in.read();

        System.out.print("Your number was: " + foo);
    }
}

但是,在输入例如数字 12 时,我得到的输出为 49。这是为什么呢?那本书教程是怎么起作用的呢?

编辑:当我在我的程序中输入“w”时,它仍然打印出 119。当​​然我认为 throws 事情正在处理这个问题?或者不是吗?

什么是扫描仪(刚刚在评论中看到)?

标签: java

解决方案


System.in.read()从输入流中读取数据的下一个字节。所以你只是1从输入中读取,你正在打印 ASCII1代码49。如果要显示字符,则应将其读取为 char 或将其转换:

System.out.print("Your number was: " + (char) foo)

推荐阅读