我在EOF
Java
之前阅读输入时遇到问题。在这里,有单输入,输出考虑每行的输入。
示例:
输入
1
2
3
4
5
输出:
0
1
0
1
0
但是,我使用Java进行编码,当我输入两个数字时,将打印单个输出。我想在Java中使用EOF
单行输入并打印单行输出(终止BufferedReader
)。
这是我的代码:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
StringBuffer pr = new StringBuffer("");
String str = "";
while((str=input.readLine())!=null && str.length()!=0) {
BigInteger n = new BigInteger(input.readLine());
}
答案 0 :(得分:22)
你正在消耗一条被丢弃的行
while((str=input.readLine())!=null && str.length()!=0)
并在
阅读bigintBigInteger n = new BigInteger(input.readLine());
所以尝试从字符串中获取bigint,该字符串被读为
BigInteger n = new BigInteger(str);
Constructor used: BigInteger(String val)
Aslo将while((str=input.readLine())!=null && str.length()!=0)
更改为
while((str=input.readLine())!=null)
readLine()
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
请参阅javadocs
答案 1 :(得分:7)
对于文本文件,当使用BufferReader.read()时,EOF可能为-1,char为char。 我使用BufferReader.readLine()!= null进行了测试,它运行正常。