A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘圣繁 中级黑马   /  2013-2-22 00:00  /  1669 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedReader(new InputStreamReader(System.in))的方法 readLine() 如果键盘直接输入回车 那么 读到的是什么???

5 个回复

倒序浏览
那当然是回车了、
回复 使用道具 举报
张君 发表于 2013-2-22 01:13
那当然是回车了、

??读到的不是null吗
回复 使用道具 举报
本帖最后由 夏振博 于 2013-2-22 01:22 编辑

回车的效果!
按回车就会输入\r\nwindows系统再解析成回车效果
回复 使用道具 举报
给你一个小demon让你理解
  1. package com.itheima;

  2. class test
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                   System.out.println("第一次无:----->"+"<------第一次无");
  7.               System.out.println("第一次有:----->"+"\r\n"+"<------第一次有");
  8.               
  9.               String a="\r\n";
  10.               
  11.               System.out.println("第二次无:----->"+"<------第二次无");
  12.               System.out.println("第二次有:----->"+a+"<------第二次有");
  13.         }
  14. }
复制代码
打印结果:
第一次无:-----><------第一次无
第一次有:----->
<------第一次有
第二次无:-----><------第二次无
第二次有:----->
<------第二次有


你可以理解为你按的回车,实际上是出现了,我在demon中定义的String类型的变量a。

再深入解释一下:
'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
回复 使用道具 举报
当用户按下回车时,readLine()方法独到的是'\n';系统再对'\n'做相应的处理(换行)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马