2016-04-27 6 views
-1

メインメニューはwhileループ内にあり、終了するかどうかを確認します。 QUITまたはQUITのようなhasNext()で大文字小文字を区別することはできますか?

while(!sc.hasNext("quit")){ 
    ...} 

ユーザーが単語に例任意のバリエーションを入力することができますので、私は、のhasNext()大文字小文字を区別しないことはできますが、「辞め」?

+2

はい。 [Javadocsを読む](https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html)。 'Scanner.hasNext(String)'はパターンです。必要に応じて 'Scanner.hasNext(Pattern)'を使うこともできます。 – KevinO

答えて

1

文字列パターン "^(?i)quit $"をsc.hasNext(String)に渡しても問題ありません。

私は簡単なスキャナをテストするように設定していませんが、正規表現は機能するはずです。

しかし、私は最善のアプローチではないかもしれない標準入力を使用する場合にチェックを埋め込むことを示唆しているread this answerをお勧めします。正規表現の


例試験結果:この周り enter image description here

0

一つの方法は、ユーザの入力を取得し、自動的に大文字または小文字にスティングのすべての文字を送信した後、それをチェックすることによってです。それでは、ユーザーが何を入れるかは関係ありません。

String str1 = new String(); 
str1 = scanner.nextLine(); 
str1.toUpperCase(); 
while(str1.equals("QUIT")){....} 
+0

Um、no。 'str1 ==" QUIT "'を実行することはできません。文字列の比較は、Javaではそのようには行われません。 – KevinO

+0

私はあなたが.equals()を使う必要があることを知っています、私の間違いです。 –

関連する問題