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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 郭阳 于 2012-9-27 16:11 编辑
  1. import java.io.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 InputStream in=System.in;
  7.                 StringBuilder sb=new StringBuilder();
  8.                 while(true)
  9.                 {
  10.                         int chs= in.read();
  11.                         if (chs=='\t')
  12.                                 continue;
  13.                         if(chs=='\n')
  14.                         {
  15.                                 String str=sb.toString();
  16.                                 if("over".equals(str) )//**************就是这一句。。输入over结束不了程序**************************
  17.                                         break;
  18.                                 System.out.println(str);
  19.                                 sb.delete(0,sb.length());
  20.                         }
  21.                         else         
  22.                                 sb.append((char)chs);
  23.                         
  24.                 }
  25.         }
  26. }
复制代码
开始还自己发挥了一下,可是发现不好用,就照着视频改,后来改到一模一样。。。还是不好用。。。真不知道到底哪里不对。。。。

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

4 个回复

倒序浏览
  while(true)
  {
           int chs= in.read();
           if (chs=='\r')    // 注意这里是 \r,而不是 \t。在windows下的换行是\r\n,\t是制表符
                  continue;
              if(chs=='\n')
              {
                  String str=sb.toString();
                  if("over".equals(str))
                            break;
                  System.out.println(str);
                  sb.delete(0,sb.length());
                }
                else         
                 sb.append((char)chs);
  }

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 宫明星 于 2012-9-27 16:16 编辑
  1. import java.io.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 InputStream in=System.in;
  7.                 StringBuilder sb=new StringBuilder();
  8.                 while(true)
  9.                 {
  10.                         int chs= in.read();
  11.                         if (chs=='\t')        //这里是 '\r',而不是'\t'
  12.                                 continue;
  13.                         if(chs=='\n')
  14.                         {
  15.                                 String str=sb.toString();
  16.                                 if("over".equals(str) )//**************就是这一句。。输入over结束不了程序**************************
  17.                                         break;
  18.                                 System.out.println(str);
  19.                                 sb.delete(0,sb.length());
  20.                         }
  21.                         else         
  22.                                 sb.append((char)chs);
  23.                         
  24.                 }
  25.         }
  26. }
复制代码
因为这里面两个if语句是判断是否读到换行标志,java里面换行是\n,但是window里面是读不出来的,
为window里默认换行标志是\r\n,所以这里要先判断\r,再判断\n。
对了Unix/Linux下的换行是\n,而Mac下的换行是\r。

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

回复 使用道具 举报
万分感谢。。。我看来该睡一觉了。。。。。。
回复 使用道具 举报
这样修改,输入over就可以退出了,{:soso_e113:}

import java.io.*;
class Demo
{
        public static void main(String[] args) throws Exception
        {
                InputStream in=System.in;
                StringBuilder sb=new StringBuilder();
                while(true)
                {
                        int chs= in.read();
                        if (chs=='\t')
                                continue;
                        if(chs=='\n')
                        {
                                String str=sb.toString();
                                if("over\r".equals(str) )    //换行符\r\n中的\r每次都会添加到StringBuilder的末尾
                                        break;
                                System.out.println(str);
                                sb.delete(0,sb.length());
                        }
                        else         
                                sb.append((char)chs);
                        
                }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马