2017-01-21 3 views
1

私は、次の入力があるかどうかを確認するためにhasNext()が使用されていることを認識していますが、何らかの理由でhasNextが入力を求めるプロンプトを表示します。これは私のコードです:スキャナでhasNext( "string")メソッドの入力を促すのはなぜですか?

Scanner sc = new Scanner(System.in); 

while (!sc.hasNext("quit")) { 
    System.out.println("Type anything other than quit to keep inputting. "); 
    sc.nextLine(); 
} 

私のプログラムは、右のバット何それは(プロンプトが入力する前に)私は何かを入力し、「終了以外何も入力」へのプロンプトがポップアップしますですプログラムは正常に動作します。しかし、私はその最初の空白の入力を望んでいません。なぜこれがポップアップし、それを修正するのですか?

答えて

0

Scanner-API

次の()と言うのhasNext()メソッドおよびそのプリミティブ型のコンパニオン第 がデリミタパターンと一致していることを任意の入力をスキップ(例えばnextInt()とhasNextInt()など) 方法次の トークンを返そうとします。 hasNextとnextメソッドの両方がさらに の入力待ちをブロックすることがあります。 hasNextメソッドブロックが、接続されている次のメソッドがブロックされないか、または がブロックされないかどうかは、接続されません。

1行が入力されたら、あなたの体に入るでしょう。

String next = ""; 
while (!next.equals("quit")) { 
    System.out.println("Type anything other than quit to keep inputting. "); 
    next = sc.nextLine(); 
} 
ような何かを書きます
関連する問題