0

Scannerメソッドを使用するプログラムを取得して、数字や特殊文字(つまり、!@£$%^)などの無効な入力をチェックし、入力された場合はエラーを出力しようとしています。私はmatches()メソッドを使用してそれを修正しようとしましたが、それでも入力したすべてのものが出力されます!(特殊文字と数字でも)

private static void input(String s) 
{
   Scanner userInput = new Scanner(System.in);
   String words;
   System.out.println("Enter your words: ");
   words = userInput.nextLine();

if (words.matches("[^a-zA-Z0-9 ]")) 
{ 
    System.out.println("Error, no number input or special character input please: ");
}

else 
    {
        System.out.println(words);
    }

}
4

1 に答える 1

3

正規表現の前後に。*を追加する必要があります。何かのようなもの:

if (words.matches(".*[^a-zA-Z0-9 ].*")) 

省略したい文字の前後の文字を許可する必要があるという考え方です。

于 2013-02-03T17:51:25.290 に答える