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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 华谦 中级黑马   /  2014-8-17 19:25  /  1538 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当第一次运行程序的时候,dos命令行第一次输入over就可以退出程序,
为什么第一次输入其他第二次再输入over的时候不退出呢?我也对sb清零了呀?哪里的问题

  1. /*
  2. 读取键盘录入
  3. System.out:对应的是标准输出设备,控制台
  4. System.in:对应的是标准输入设备,键盘

  5. 需求:
  6. 通过键盘录入数据,当录入一行数据后,就将该数据进行打印
  7. 如果录入的数据时over,那么就停止录入

  8. */
  9. import java.io.*;
  10. class  ReadIn
  11. {
  12.         public static void main(String[] args) throws IOException
  13.         {
  14.                 InputStream in = System.in;
  15.                 StringBuilder sb = new StringBuilder();               
  16.                 while(true)
  17.                 {
  18.                         int ch = in.read();
  19.                         if(ch=='\r')
  20.                                 continue;
  21.                         if(ch=='\n')
  22.                         {
  23.                                 String s = sb.toString();
  24.                                 if(s.equals("over"))
  25.                                         break;
  26.                                 System.out.println(s+"长度:"+sb.length());

  27.                                 sb.delete(0,s.length());
  28.                        
  29.                         }
  30.                         sb.append((char)ch);


  31.                 }
  32.         }
  33. }
复制代码

7 个回复

倒序浏览
你只在读,没看你将读到的信息写入StringBuilder
回复 使用道具 举报
华谦 来自手机 中级黑马 2014-8-17 21:22:52
藤椅
yuli2039 发表于 2014-8-17 21:01
你只在读,没看你将读到的信息写入StringBuilder

那为什么第一次读到了呢??很郁闷
回复 使用道具 举报
问题一,接收输入的时候怎么用 int  ?   问题二  , sb里面都没东西,怎么能打印?问题三,把sb的添加放最下面能有用?

点评

inputstream接收输入不用int用什么?delete是在打印之后,怎么不能打印?sb放最下怎么不能添加了?  发表于 2014-8-17 22:28
回复 使用道具 举报
ssy1939 发表于 2014-8-17 22:20
问题一,接收输入的时候怎么用 int  ?   问题二  , sb里面都没东西,怎么能打印?问题三,把sb的添加放最 ...

还真能打印。。楼主的代码怪怪的
回复 使用道具 举报
楼主你的问题在于sb.append((char)ch);之前要加一个else,否则当读到'\n'、打印、删除之后,就会继续执行sb.append((char)ch);把'\n'也放进sb中了,所以下次你再输入over,sb中存的是"\nover",当然不等于"over"
回复 使用道具 举报
我之前也碰到这样的问题,加个else就对了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马