有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的控制台输入(整数)

我需要从控制台获取整数输入

import java.io.IOException;
class tst{
    public static void main(String args[])
    throws IOException
    {
        int t=(int)System.in.read();
        System.out.println(t);
    }
}

我期望输出为2,但实际输出为50 如何解决


共 (2) 个答案

  1. # 1 楼答案

    这是因为System.in.read()读取下一个char,在ASCII table中,char 2对应于十进制数50

    改用类Scanner,哪个函数int nextInt()正好满足您的需要:

    int t = new Scanner(System.in).nextInt();
    System.out.println(t);
    
  2. # 2 楼答案

    正如前面的回答所说,您使用System.in.read获得ASCII值。如果仍要使用该方法,可以使用以下行将其转换为int

    int t = Character.getNumericValue(System.in.read());