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);
[...]
}