Как обнаружить все специальные символы в операторе if else в Java? - PullRequest
0 голосов
/ 07 марта 2020

Добрый день, я хотел бы спросить об обнаружении всех специальных символов во всей строке. Это весь мой текущий код

System.out.println("Enter username: ");
usernameRegister = regScan.nextLine();

if(usernameRegister.contains(" "))
{
  System.out.println("No space");
}
else if(usernameRegister.matches("[^a-zA-Z0-9]") )
{
  System.out.println("No special char");
}
else if(usernameRegister.length()<5)
{
  System.out.println("No less than 4 chars");
}
else
{
  System.out.println("Accepted");
}

Но проблема с моим кодом, особенно с этим

else if(usernameRegister.matches("[^a-zA-Z0-9]") )

, заключается в том, что он может обнаружить только один символ в строке, как мне сделать это обнаружить всю линию?

1 Ответ

1 голос
/ 07 марта 2020

Похоже, все, что вам нужно, это .matches(".*[^a-zA-Z0-9].*") - другими словами, «любое число чего угодно, затем ровно один не-alphanumeri c, а затем любое количество чего угодно». Строка с несколькими не алфавитно-цифровыми цифрами все еще соответствует этому описанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...