Использование Apache Commons Lang:
!StringUtils.isAlphanumeric(String)
Альтернативно перебирать символы String и проверять с помощью:
!Character.isLetterOrDigit(char)
У вас осталась одна проблема: Пример строки "abcdefà"буквенно-цифровой, поскольку à
является буквой.Но я думаю, вы хотите, чтобы это считалось не алфавитно-цифровым, верно?!
Так что вы можете использовать вместо этого регулярное выражение:
String s = "abcdefà";
Pattern p = Pattern.compile("[^a-zA-Z0-9]");
boolean hasSpecialChar = p.matcher(s).find();