[英]Non-terminating Java program 2
我和以前在此链接中发布的问题相同。 我不为什么,但是当我再次尝试时,但是这次使用Eclipse(我在链接中使用了Netbeans)。 我得到的结果是完全错误的。 在UVAToolkit中,曾经引起误解的空格可能返回错误的答案。
如果有机会,我应该改用BufferedReader吗?
BufferedReader reader = new BufferedReader(InputStreamReader(System.in));
代码[注意:位于main(String [] args)方法中]
Scanner scanner = new Scanner(System.in);
String line;
while(!(line = scanner.nextLine()).equals("")) {
System.out.println(line);
}
System.out.println("done");
大小写输入:[“ 1000”字符串末尾没有空格]
1 10
1 100
1 1000
案例输出[注意:“换行符”与空格输入有关]
1 10
1 100
"new-line"
1 1000
"new-line"
done
"new-line"
正确的大小写输出[注意:“ done”字符串的末尾没有空格]
1 10
1 100
1 1000
done
提前致谢。
以下代码将显示输入的结果字符串(如果它不是空字符串),并在完成后显示“ done”。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadConsoleScanner {
public static void main(String[] args) {
boolean stop = false;
BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
String sWhatever = "";
try {
while(!(stop = (sWhatever = bufferRead.readLine()).matches(""))){
if (!stop) System.out.println(sWhatever);
}
System.out.println("done");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
关于下面的期望:
大小写输入:[“ 1000”字符串末尾没有空格]
我认为很难找到一种方法来避免将空白(空字符串)用作循环的标记,除非最终输入预期为“ 1 1000”,我们可以按如下方式更改循环的标记: :
while(!(stop = (sWhatever = bufferRead.readLine()).contains("1 1000"))){
//whatever
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.