Мне нужен метод, который может сказать мне, если строка имеет не буквенно-цифровые символы.
Например, если строка "abcdef?" или "abcdefà", метод должен возвращать true.
Мне нужен метод, который может сказать мне, если строка имеет не буквенно-цифровые символы.
Например, если строка "abcdef?" или "abcdefà", метод должен возвращать true.
Использование 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 ].*$");
один из них - использовать внешнюю библиотеку, такую как Apocal commons:
String s = "some text";
boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);
		Вам нужно пройти каждый символ в строке и проверить Character.isDigit(char); или Character.isletter(char);
В качестве альтернативы вы можете использовать регулярное выражение.
Если вы можете использовать библиотеку Apache Commons, то Commons-Lang StringUtils имеет метод под названием isAlphanumeric(), который делает то, что вы ищете.
 string.matches("^\\W*$"); должен делать то, что вы хотите, но не включает пробелы. string.matches("^(?:\\W|\\s)*$"); также соответствует пробелу.
Вы можете использовать isLetter (char c) статический метод класса Character в Java.lang.
public boolean isAlpha(String s) {
    char[] charArr = s.toCharArray();
    for(char c : charArr) {
        if(!Character.isLetter(c)) {
            return false;
        }
    }
    return true;
}
		Используйте эту функцию, чтобы проверить, является ли строка буквенно-числовой:
public boolean isAlphanumeric(String str)
{
    char[] charArray = str.toCharArray();
    for(char c:charArray)
    {
        if (!Character.isLetterOrDigit(c))
            return false;
    }
    return true;
}
Это избавляет от необходимости импортировать внешние библиотеки, и код может быть легко изменен, если вы позже захотите выполнить различные проверки проверки строк.