本帖最后由 3040789425 于 2014-8-23 12:27 编辑
package test;
/**从键盘输入数据,当数据为一行时,输出,并输入over结束程序*/
import java.io.IOException;
import java.io.InputStream;
public class SystemInDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
SystemIn.In();
}
}
class SystemIn
{
public static void In() throws IOException {
InputStream inputstream=System.in;
StringBuilder stringbuilder=new StringBuilder();
while(true)
{
int ch=inputstream.read();
if(ch=='\r')
continue;
if(ch=='\n'){
String str=stringbuilder.toString();
if(str.equals("over"))
break;
System.out.println(str);
stringbuilder.delete(0, stringbuilder.length());
} else
stringbuilder.append((char)ch);
}
}
} 问题
1. 为什么输入函数并没有在循环体中,程序却可以在运行完一次输入,判断可以再次键盘输入数据并继续判断输出???
2. 行分割符为\r\n, 为什么用键盘输入\r\n却不会被识别为行分隔符???
3. 为什么程序是遇到break 后结束,而不是在运行完循环体后直接结束?????
|
|