簡體   English   中英

標准輸入讀多行

[英]Stdin reading multiple lines

我有以下代碼:

        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上編譯。

干杯! 達里奧

只需使用數組並將其填充到您的for循環中即可:

String[] inputs = new String[numberofLines];

for (int i = 0; i < numberofLines; i++)
    inputs[i] = stdin.readLine();

特別提示:

如果要使用單個String多行:

String submittedString = "";

for (int i = 0; i < numberofLines; i++)
    submittedString += stdin.readLine() + System.getProperty("line.separator");
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = "";

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

}
submittedString = stdin.readLine();

BufferedReaders的readLine方法將讀取System.in,直到遇到新的一行為止,因此,如果您使用文件的第一行來確定要讀取的行數,則您的數據必須不正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM