java中的read函数
我有以下代码:java中的read函数,java,bufferedreader,Java,Bufferedreader,我有以下代码: public class test { public static void main(String args[]) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); char x =(char)in.read(); char y =(char)in.read(); c
public class test {
public static void main(String args[]) throws IOException {
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
char x =(char)in.read();
char y =(char)in.read();
char z =(char)in.read();
System.out.print(x+y+z);
}
}
这个输入:
1
2
输出为:
109
为什么我得到这个输出?
我不明白read函数是如何工作的。
我尝试使用跳过功能,但也没有得到正确答案。您正在以字符形式读取输入。您的输入为三个字符(1、2和换行):
的ASCII值为491
的ASCII值为502
,ASCII值为10换行
然后,将这三个字符按ASCII值相加,总数为109。您正在以字符形式读取输入。您的输入为三个字符(1、2和换行):
的ASCII值为491
的ASCII值为502
,ASCII值为10换行
然后将这三个字符按ASCII值相加,总数为109。问题在于,您误解了调用时如何返回字符 读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1
read
方法返回一个int
,以便返回字符的Unicode代码。对于简单的字母和数字,Unicode与ASCII重叠,其中1
为49,2
为50,换行符为10。这些代码的总和是109
选项:
- 使用一个
- 使用
将字符串解析为整数Integer.parseInt
- 问题在于,您误解了调用时如何返回字符
读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1
read
方法返回一个int
,以便返回字符的Unicode代码。对于简单的字母和数字,Unicode与ASCII重叠,其中1
为49,2
为50,换行符为10。这些代码的总和是109
选项:
- 使用一个
- 使用
将字符串解析为整数Integer.parseInt