黑马程序员技术交流社区
标题:
IO小问题请教
[打印本页]
作者:
唐林渊
时间:
2012-3-29 12:23
标题:
IO小问题请教
public static void main(String[] args) throws IOException {
//System.in是输入设备 对应的是读取字节流InputStream
InputStream in=System.in;
//定义一个容器,装打印的字节
StringBuilder sb=new StringBuilder();
while(true){
int x=in.read();//读取键盘上打印的数据
if(x=='\r')// ???此处键盘 上录入的返回值是int 类型的 能和'\r'做比较?????
continue;
if(x=='\n') ???此处键盘 上录入的返回值是int 类型的 能和'\n'做比较?????
{
String s=sb.toString();
if("over".equals(s))
break;
System.out.println(s.toUpperCase());
sb.delete(0,sb.length());
}
else
sb.append((char)x);
}
}
}
作者:
刘元明
时间:
2012-3-29 12:32
你通过键盘录入是一行行的,你每次回车不就是将/r/n当内容也输进去了;
当你读取到它时,就相当于读到标记处了。
作者:
H07000223
时间:
2012-3-29 12:48
字符char类型在内存中存在形式就是int类型的
作者:
izwj
时间:
2012-3-29 12:58
在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。
而这些ASCII代码值在计算机中也是以二进制形式存放的。/r和/n也有对应的ASCII值
作者:
何万县
时间:
2012-3-29 13:14
我认为是不可以的,因为回车有一个作用是执行命令,此处应该不能读吧?
作者:
张明星
时间:
2012-3-29 14:04
ASCII码里面 \r 是0x0D,也就是13; \n是0x0A,也就是10
就像'a' 对应的ASCII码为97,比较'a'==97,返回值为真。
同样这里的\r,\n都可以和int型的数字相比较,13=='\r',10=='\n',就是这个道理。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2