首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Buffered Reader读取int

使用Buffered Reader读取int
EN

Stack Overflow用户
提问于 2015-09-22 19:16:55
回答 2查看 43.9K关注 0票数 2
代码语言:javascript
复制
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”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-22 19:29:15

使用readLine()方法而不是read()方法。

代码语言:javascript
复制
int size = Integer.parseInt(br.readLine());

read()方法不返回input的确切int值。

public int read()抛出IOException读取单个字符。Overrides: read in class Reader返回:读取的字符,以0到65535 (0x00-0xffff)范围内的整数表示,如果已到达流的末尾,则为-1抛出: IOException -如果发生I/O错误

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

票数 9
EN

Stack Overflow用户

发布于 2015-09-22 19:20:53

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

当您在BufferedReader中输入3时,read()会将其读取为字符,即'3',这与ASCII码51相对应。

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

代码语言:javascript
复制
System.out.println((int) '3'); // prints 51
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32715459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档