2016-11-25 4 views
0

私は、ユーザが文字列または整数のいずれかを入力できるスキャナを実行しています。 a、e、u、rなどのユーザーが入力できる特定の文字のみがあり、番号は何でもかまいません。チェックが実行されるのは文字であるが、ユーザーが数字を入力すると失敗します。Javaスキャナが文字列かintかをチェック

String temp = scanner.next(); 
String[] validToken = {"x","e","u","r","+","-","/","*",}; 
for (String validToken1 : validToken) { 
    if (temp.equals(validToken1) || temp.equals("\\d+")) { 
     tokenCheck = true; 
    } 
} 
+0

try catchを使用できませんでしたか? – SaggingRufus

+0

'String []'の代わりに 'Set'を使うと、' validToken.contains(temp) 'と@iNamと同様に、' String'をチェックしたいときはregex use 'matches (....) ' – Titus

答えて

2

変更はmatchesと同じです。 matchesは、文字列が特定の正規表現と一致するかどうかをチェックするために使用されます。

if (temp.equals(validToken1) || temp.matches("\\d+")) { 
        tokenCheck = true; 
       } 
2

あなたはmatchesequalsを交換する際に、文字列は文字通り\d+であれば、あなたがチェックしていると等しいと、それは正規表現ではありませんので、修正する必要があります。

関連する問題