本帖最后由 jingdou56 于 2014-4-8 22:40 编辑
今天学习流,有一个练习是 键盘录入一行字符,回车后,打印刚刚输入的字符!
中间判断回车符是用 '\r' 和'\n‘来判读是否敲了回车!
if(ch=='\r')
continue;
判断如果是 '\r' , continue,没有将 '\r'存到缓冲区或者其他地方,
但是,让输入的字符中有 \r 时,比如(adf \r sdf)却也打印出来了,而没有漏掉!
不明白这个字符串中的 \r和 回车中的\r有什么区别!
补充:
可能我之前问的不太明白!
我认为,第一次读 \r 时,没进行append操作,直接 continue了,下次循环时不应该读的是下一个字符 s吗,这次else 添加的不应该是s吗? \r 是怎么添进来的
- import java.io.*;
- import java.util.*;
- class SysInTest
- {
- public static void main(String[] args) throws IOException
- {
- InputStream in = System.in;
- StringBuilder sb = new StringBuilder();
- while(true)
- {
- int ch = in.read();
- if(ch=='\r')
- continue;
- if(ch=='\n')
- {
- String s = sb.toString();
- if("over".equals(s))
- break;
- System.out.println(s.toUpperCase());
- sb.delete(0,sb.length());
- }
- else
- {
- sb.append((char)ch);
- }
- }
- }
- }
复制代码
|