黑马程序员技术交流社区

标题: 如何判断用户控制台输入的是回车 [打印本页]

作者: 刘圣繁    时间: 2013-3-1 10:13
标题: 如何判断用户控制台输入的是回车
BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
String str=bur.readLine();
如何判断用户输入的是回车   显然str==null 通过实验证明是不对的
作者: 唐长智    时间: 2013-3-1 10:17
你说的回车的意思就是换行吧,readLine()就是根据换行来判定的啊。readLine每执行一次,就说明有一次回车。
作者: 偏執旳、靑春    时间: 2013-3-1 10:18
获取用户输入的字符啊!
作者: 刘圣繁    时间: 2013-3-1 10:25
唐长智 发表于 2013-3-1 10:17
你说的回车的意思就是换行吧,readLine()就是根据换行来判定的啊。readLine每执行一次,就说明有一次回车。 ...

我的意思是如果用户直接回车了怎么判断 他输入的是回车
作者: 唐长智    时间: 2013-3-1 22:00
好的,我又回来了。
按照楼主的意思,我写了个小程序看了下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. }
复制代码

作者: 移动小坦克    时间: 2013-3-2 20:56
在windows系统里,如果在控制台输入回车,返回的是"\r\n";
所以可以用if(str.equals(”\r\n")来判断
搜索了一下linux里 \n ,mac里是 \r
unix里也是\n  
作者: 胡勇敏    时间: 2013-3-3 10:35
韩松范 发表于 2013-3-2 20:56
在windows系统里,如果在控制台输入回车,返回的是"\r\n";
所以可以用if(str.equals(”\r\n")来判断
搜索了 ...

这个哥们是正解。
作者: 移动小坦克    时间: 2013-3-3 20:10
胡勇敏 发表于 2013-3-3 10:35
这个哥们是正解。

版主看到了吗???????
发帖的人都说是正解了,技术分啊。。。。。(:lol)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2