我有以下代码:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String submittedString = "";
System.out.flush();
submittedString = stdin.readLine();
int numberofLines = Integer.parseInt(submittedString.split(" ")[0]);
for(int i = 0; i < numberofLines; i++)
submittedString += stdin.readLine();
zipfpuzzle mySolver = new zipfpuzzle();
mySolver.getTopSongs(submittedString);
然而,尽管输入超过了多行,但这只读取了第一行。
我的错误在哪里?
如果它有任何区别,我正在编辑eclipse。
干杯! 达里奥
答案 0 :(得分:4)
只需使用数组并在for循环中填充它:
String[] inputs = new String[numberofLines];
for (int i = 0; i < numberofLines; i++)
inputs[i] = stdin.readLine();
额外注意:
如果您想要多个单行字符串:
String submittedString = "";
for (int i = 0; i < numberofLines; i++)
submittedString += stdin.readLine() + System.getProperty("line.separator");
答案 1 :(得分:3)
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while ((line = stdin.readLine()) != null){
// Do something.
submittedString += line + '\n';
}
答案 2 :(得分:-1)
submittedString = stdin.readLine();
BufferedReaders readLine method将读取System.in,直到它到达新行,因此如果您使用文件的第一行来确定要读取的行数,那么您的数据必须不正确。