我写了一个简单的程序:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Integer first = in.read();
System.out.println(first);
但是例如当我输入13时,打印49 !!!为什么?
答案 0 :(得分:3)
read()
方法从输入中读取char
,13
为'1'
,49
为int
值您需要使用<{1}} char
'1'
注意:+处理输入验证
答案 1 :(得分:1)
使用in.read()
时,它将返回element的int值。然后插入13它将读取单个字符。所以49
是char 1
您应该使用以下
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Integer first = Integer.valueOf(in.readLine());
System.out.println(first);
阅读more。
答案 2 :(得分:1)
read()
方法返回它读取的单个字符的int值
public int read() throws IOException读取单个字符。覆盖:在类Reader中读取返回:读取的字符,作为整数 范围0到65535(0x00-0xffff),如果流的末尾有,则返回-1 已达成
因此,如果您想阅读整行,请尝试
Integer first = Integer.parseInt(in.readLine());