黑马程序员技术交流社区
标题:
【求助】奔溃了,IO键盘输入,和视频代码一样可就是不好...
[打印本页]
作者:
郭阳
时间:
2012-9-27 15:50
标题:
【求助】奔溃了,IO键盘输入,和视频代码一样可就是不好...
本帖最后由 郭阳 于 2012-9-27 16:11 编辑
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".equals(str) )//**************就是这一句。。输入over结束不了程序**************************
break;
System.out.println(str);
sb.delete(0,sb.length());
}
else
sb.append((char)chs);
}
}
}
复制代码
开始还自己发挥了一下,可是发现不好用,就照着视频改,后来改到一模一样。。。还是不好用。。。真不知道到底哪里不对。。。。
作者:
孔肖
时间:
2012-9-27 16:03
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);
}
作者:
宫明星
时间:
2012-9-27 16:09
本帖最后由 宫明星 于 2012-9-27 16:16 编辑
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') //这里是 '\r',而不是'\t'
continue;
if(chs=='\n')
{
String str=sb.toString();
if("over".equals(str) )//**************就是这一句。。输入over结束不了程序**************************
break;
System.out.println(str);
sb.delete(0,sb.length());
}
else
sb.append((char)chs);
}
}
}
复制代码
因为这里面两个if语句是判断是否读到换行标志,java里面换行是\n,但是window里面是读不出来的,
为window里默认换行标志是\r\n,所以这里要先判断\r,再判断\n。
对了Unix/Linux下的换行是\n,而Mac下的换行是\r。
作者:
郭阳
时间:
2012-9-27 16:12
万分感谢。。。我看来该睡一觉了。。。。。。
作者:
吴硕
时间:
2012-9-27 17:12
这样修改,输入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);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2