0

我有以下代码:

        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 上编译。

干杯! 达里奥

4

3 回答 3

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");
于 2013-04-01T16:19:05.457 回答
3
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = "";

while ((line = stdin.readLine()) != null){
// Do something.
submittedString += line + '\n';

}
于 2013-04-01T16:18:24.397 回答
-1
submittedString = stdin.readLine();

BufferedReaders readLine 方法将读取 System.in 直到它遇到新行,因此如果您使用文件的第一行来确定要读取的行数,那么您的数据一定是不正确的。

于 2013-04-01T16:19:21.307 回答