永发信息网

java里的system.in.read问题,大神进,谢谢!

答案:3  悬赏:10  手机版
解决时间 2021-01-30 22:00
  • 提问者网友:棒棒糖
  • 2021-01-30 11:13
public class test {
public static void main(String args[])
throws java.io.IOException{
char ch='a';
System.out.print("Press any key followed by ENTER!");
for(int i=0;i<=2;i++){
ch=(char)System.in.read();
System.out.println("Your key is:"+ch);
}
}
}我的问题是:windows环境下,假设我从键盘上输入a和回车,那么三次读入的ch是什么?是a和\n还是a和null?还是a和\n和\r?windows下回车键相当于是换行符加回车符吧?
Your key is:a
Your key is:

Your key is:
困扰我很久了,求解答,谢谢!
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-01-30 12:10
Windows环境下回车是输入\r\n。

你的程式如果改成:
int ch = 'a';
for(int i=0;i<=2;i++) {
    ch = System.in.read();
    System.out.println("Your key is:"+ch);
}就可以看到当键盘输入a,回车,打印为 97, 13, 10。 也就是 a \r \n。
Linux环境回车是\n。
全部回答
  • 1楼网友:一袍清酒付
  • 2021-01-30 14:07
\r\n或\n for (int i = 0; i <= 2; i++) { ch = (char) System.in.read(); System.out.println("Your key is:" + ch); System.out.println(((Character)ch).toString().length()); } 输入:asd 然后换行 输出: Press any key followed by ENTER!
  • 2楼网友:零点过十分
  • 2021-01-30 13:14
你这个代码,最后ch等于第三次输入的值。回车键不会算进去,也就没有了\n,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯