Stdin阅读多行

时间:2013-04-01 16:13:29

标签: java stdin

我有以下代码:

        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。

干杯! 达里奥

3 个答案:

答案 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,直到它到达新行,因此如果您使用文件的第一行来确定要读取的行数,那么您的数据必须不正确。