使用Buffered Reader读取int

时间:2015-09-22 11:16:55

标签: java bufferedreader

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("please enter the size of array");
size = br.read();
sarray = new int[size];

for (int i = 0; i < size; i++) {
    sarray[i] = i;
}
System.out.println(sarray.length);

当我尝试打印数组的长度时,它显示为“51”,即使我将大小设为“3”。

2 个答案:

答案 0 :(得分:6)

使用readLine()方法代替read()方法。

int size = Integer.parseInt(br.readLine());

read()方法不会返回输入的确切int值。

  

public int read()            throws IOException读取单个字符。覆盖:类Reader中的读取返回:读取的字符,作为整数   范围0到65535(0x00-0xffff),如果流的末尾有,则返回-1   抛出:IOException - 如果发生I / O错误

参考:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#read()

答案 1 :(得分:3)

BufferedReader.read()读取单个字符并将其作为整数返回(即返回字符的ASCII码)。

当您向3输入BufferedReader时,read()会将其作为字符读取,即'3',其对应于ASCII码51.

您可以通过执行以下代码来验证这一点:

System.out.println((int) '3'); // prints 51