jel*_*ish 1 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);
Run Code Online (Sandbox Code Playgroud)
当我尝试打印数组的长度时,它显示为"51",即使我将大小设为"3".
使用readLine()方法而不是read()方法.
int size = Integer.parseInt(br.readLine());
Run Code Online (Sandbox Code Playgroud)
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()
BufferedReader.read() 读取单个字符并将其作为整数返回(即返回字符的ASCII码)。
当您输入3时BufferedReader,read()会将其读取为一个字符,即as '3',它对应于ASCII代码51。
您可以通过执行以下代码来验证这一点:
System.out.println((int) '3'); // prints 51
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26863 次 |
| 最近记录: |