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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘圣繁 中级黑马   /  2013-3-1 10:13  /  3303 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
String str=bur.readLine();
如何判断用户输入的是回车   显然str==null 通过实验证明是不对的

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 神马都是浮云

查看全部评分

7 个回复

倒序浏览
你说的回车的意思就是换行吧,readLine()就是根据换行来判定的啊。readLine每执行一次,就说明有一次回车。
回复 使用道具 举报
获取用户输入的字符啊!
回复 使用道具 举报
唐长智 发表于 2013-3-1 10:17
你说的回车的意思就是换行吧,readLine()就是根据换行来判定的啊。readLine每执行一次,就说明有一次回车。 ...

我的意思是如果用户直接回车了怎么判断 他输入的是回车
回复 使用道具 举报
好的,我又回来了。
按照楼主的意思,我写了个小程序看了下read()方法读到回车时的返回值。
  1. package Test;
  2. import java.io.*;
  3. public class Test {
  4.         public static void main(String[] args) throws IOException{
  5.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  6.                 int i = 0;
  7.                 while((i = bufr.read())!=-1){
  8.                         System.out.println(i);
  9.                 }
  10.         }
  11. }
复制代码
当我在控制台按下空格时,控制台打印出了10和13两个数字,说明read()在读取换行符时返回的int值是13和10.
这样就好办了。
  1. public class Test {
  2.         public static void main(String[] args) throws IOException{
  3.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  4.                 int i = 0;
  5.                 while((i = bufr.read())!=-1){
  6.                         if(i == 10 | i == 13){
  7.                                 //判断出了是否是回车,可以写你想做的了。
  8.                                 System.out.println("这是个回车");
  9.                         }
  10.                 }
  11.         }
  12. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个

查看全部评分

回复 使用道具 举报
在windows系统里,如果在控制台输入回车,返回的是"\r\n";
所以可以用if(str.equals(”\r\n")来判断
搜索了一下linux里 \n ,mac里是 \r
unix里也是\n  
回复 使用道具 举报
韩松范 发表于 2013-3-2 20:56
在windows系统里,如果在控制台输入回车,返回的是"\r\n";
所以可以用if(str.equals(”\r\n")来判断
搜索了 ...

这个哥们是正解。
回复 使用道具 举报
胡勇敏 发表于 2013-3-3 10:35
这个哥们是正解。

版主看到了吗???????
发帖的人都说是正解了,技术分啊。。。。。(:lol)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马