簡體   English   中英

非終止Java程序2

[英]Non-terminating Java program 2

我和以前在此鏈接中發布的問題相同。 我不為什么,但是當我再次嘗試時,但是這次使用Eclipse(我在鏈接中使用了Netbeans)。 我得到的結果是完全錯誤的。 在UVAToolkit中,曾經引起誤解的空格可能返回錯誤的答案。

如果有機會,我應該改用BufferedReader嗎?

BufferedReader reader = new BufferedReader(InputStreamReader(System.in));

代碼[注意:位於main(String [] args)方法中]

Scanner scanner = new Scanner(System.in);
String line;
while(!(line = scanner.nextLine()).equals("")) {
     System.out.println(line);
}
System.out.println("done");

大小寫輸入:[“ 1000”字符串末尾沒有空格]

1 10
1 100
1 1000

案例輸出[注意:“換行符”與空格輸入有關]

1 10
1 100
"new-line"
1 1000
"new-line"
done
"new-line"

正確的大小寫輸出[注意:“ done”字符串的末尾沒有空格]

1 10
1 100
1 1000
done

提前致謝。

以下代碼將顯示輸入的結果字符串(如果它不是空字符串),並在完成后顯示“ done”。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadConsoleScanner {
    public static void main(String[] args) {
        boolean stop = false;
        BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
        String sWhatever = "";
        try {
            while(!(stop = (sWhatever = bufferRead.readLine()).matches(""))){
                if (!stop) System.out.println(sWhatever);
            }
            System.out.println("done");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

關於下面的期望:

大小寫輸入:[“ 1000”字符串末尾沒有空格]

我認為很難找到一種方法來避免將空白(空字符串)用作循環的標記,除非最終輸入預期為“ 1 1000”,我們可以按如下方式更改循環的標記: :

while(!(stop = (sWhatever = bufferRead.readLine()).contains("1 1000"))){
    //whatever
}

暫無
暫無

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

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