读取键盘输入的一个字符时,我们在键盘上按一下回车键,实际上读取到的是两个字符,即“\r”和“\n”。字符“\r”表示回车,即光标回到当前行的行首而不换行;字符“\n”表示换行,即光标移到当前行的下一行行首。
按一下回车键,System.in.read()读取到字符“\r”,当执行到下面的程序代码时:
System.out.println("hello" + ch + "AB");
打印字符串“hello”后,接着打印输出字符“\r”,这时,光标移到字符串“hello”所在当前行的行首,由于没有字符“\n”,不会换到下一行,再继续打印字符串“AB”。这样,字符串“AB”就覆盖了字符串“hello”的前两个字符,所以,我们看到在命令行打印输出的是字符串“ABllo”。
在常用的IDE上运行该程序的时候,当我们在键盘上按一下回车键,实际上读取到的是两个字符,即“\r”和“\n”。
在eclipse下运行的结果为:
hello
AB
如下图: