Note2:
键盘输入回车的一个小讨论。
代码如下:
public class Test {
public static void main(String args[]) throws IOException{
char s[]=new char[20];
System.out.println("Input:");
int i=-1;
do{
i++;
s[i]=(char) System.in.read();
System.out.println(s[i]);
}while(s[i]!='/n');
System.out.println(i);
}
}
当我们在输入提示后输入如下内容后:
1234
并按回车键确认,我们会发现,程序输出的变量i的值不是3,也不是4,而是5。
查询了java的帮助文档后,我们看到如下解释:
System.in.read()的作用是从输入流读取下一个数据字节。
通过验证,也可以发现上面程序数组中存放的数据如下表所示:
下标 | 0 | 1 | 2 | 3 | 4 | 5 |
值 | ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘/r’ | ‘/n’ |
注:1。’ 1’表示存放的是字符 1 ;
2. ’/r’表示回车,其ASCII码值(十进制)为:013;
3. ‘/n’表示换行,其ASCII码值(十进制)为:010;
也就是说,在输入1234并按Enter健后,Enter健操作是被算成两个操作的:回车+换行,并以2个字节的形式存入到输入流中。