Notes(2):键盘输入回车的一个小讨论

来源:互联网 发布:设备通讯端口 英文 编辑:程序博客网 时间:2024/06/07 19:26

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个字节的形式存入到输入流中。

 

 
原创粉丝点击