Как определить, имеет ли строка не буквенно-цифровые символы?



Мне нужен метод, который может сказать мне, если строка не буквенно-цифровых символов.



например, если строка " abcdef?"или " abcdefà", метод должен возвращать true.

530   3  

3 ответов:

Использование Apache Commons Lang:

!StringUtils.isAlphanumeric(String)

альтернативно повторите символы строки и проверьте с помощью:

!Character.isLetterOrDigit(char)

у вас еще одна проблема осталась: Ваш пример строки "abcdefà" является буквенно-цифровым, так как à - это письмо. Но я думаю, что вы хотите, чтобы это считалось не буквенно-цифровым, верно?!

так что вы можете использовать регулярное выражение:

String s = "abcdefà";
Pattern p = Pattern.compile("[^a-zA-Z0-9]");
boolean hasSpecialChar = p.matcher(s).find();

один из способов-сделать это с помощью самого класса String. Предположим, что ваша строка что-то вроде этого:

String s = "some text";
boolean hasNonAlpha = s.matches("^.*[^a-zA-Z0-9 ].*$");

еще один-использовать внешнюю библиотеку, такую как Apache commons:

String s = "some text";
boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);

вы должны пройти через каждый символ в строке и проверить Character.isDigit(char); или Character.isletter(char);

кроме того, вы можете использовать regex.

Comments

    Ничего не найдено.