Javaで複数行の入力を取る方法

Zaham2:

私はJavaで複数行のユーザーの入力を取り、に行を分割しようとしているarray、私はオンライン裁判官のための問題を解決するために、これを必要とします。私が使用しているScanner入力を取ります。私は、入力の終了を決定傾けます。私は入力のサイズがわからないので、私はいつも、無限ループを取得する(行のすなわち数)

空の文字列(クリックすると入力)で入力を終了すると、まだ無限ループです。コードは以下に。

  public static void main(String[] args) {

        ArrayList<String> in = new ArrayList<String>();
        Scanner s = new Scanner(System.in);

        while (s.hasNextLine() == true){
            in.add(s.nextLine());
            //infinite loop
        }
    }

私は、ループが初めてを実行する理由さえわかりません。私は信じhasNextLine()入力がまだ取られなかったことから、初めてfalseにする必要があります。すべてのヘルプや明確化は大歓迎しました。

Coronero:

あなたは、ループブレーカとして空行を使用することができます。

while (s.hasNextLine()){ //no need for "== true"
    String read = s.nextLine();
    if(read == null || read.isEmpty()){ //if the line is empty
        break;  //exit the loop
    }
    in.add(read);
    [...]
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=336108&siteId=1