java - System.out.println 的未知输出

标签 java

我正在学习 Java,在研究 try catch 循环时,我遇到了这种奇怪的行为。

无论我向以下代码提供什么数字,它都会返回 49 - 53 之间的数字。

public class demo{
    public static void main(String[] args) {
        System.out.println("Enter a number");
        try{
            int num = System.in.read();
            System.out.println(num);
        }catch(Exception e){
            e.printStackTrace();
        }       
    }
}

最佳答案

您必须输入数字 1-5。 read() method of InputStream (System.in 是一个 InputStream)以 int 形式返回字节值,但该值是 Unicode 代码。字符'1''5'由代码49-53表示。事实上,'0''9' 由代码 48-57 表示。

不要直接在InputStream上调用read。它适用于低级流处理。相反,将 InputStream 包装在 Scanner and call nextInt() 中.

关于java - System.out.println 的未知输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30467473/

相关文章:

java - 有关小部件上下文/生命周期的信息

java - 在 Java 中使用正则表达式进行部分精确匹配

java - 在 AbstractTableModel 中使用 ResultSet 后,ResultSet 关闭后不允许进行操作

java - 在java中静态 block 之前或之后声明静态变量之间的区别

java - 如何使用 OLingo 4 在 Java 中加载 EDMX 模式文件?

java - 有没有办法在数据库中存储 Opencv/javacv Mat 对象?

java - 防止使用 ModelBuilder.createArrow 创建时箭头较长时为 "fatter"

java - 这是在 Java 中为并发线程计时的正确方法吗

java - 是否可以从 Servlet 重定向到同一个 JSP 页面?

java - 一个 Action 只执行一次