我需要从控制台获取整数输入。
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 如何解决?
答案 0 :(得分:1)
这是因为System.in.read()
读取下一个char
,并且在ASCII table中,字符2
对应于十进制数50
。
改用类Scanner,哪个函数int nextInt()
完全满足您的需求:
int t = new Scanner(System.in).nextInt();
System.out.println(t);
答案 1 :(得分:0)
如前一个答案所述,您正在使用System.in.read
获得ASCII值。如果您仍想使用该方法,则可以使用以下行将其隐藏到int
中:
int t = Character.getNumericValue(System.in.read());