Java: проверить, если строка содержит какие-либо письма от GZ

1

Я хочу проверить, содержит ли какая-либо часть строки букву из диапазона [g-zG-Z].

Возьмем, например, строку "age01", она содержит ag, она должна распечатываться "Ошибка: строка содержит букву из g-zG-Z", но вместо этого она печатает строку. пожалуйста помоги

public static void main(String args[]) {
    String s = "aged01";
    if(s.contains("[g-zG-Z]+")) {
        System.out.println("Error:String contains a letter from g-zG-Z");
    }
    else {
        System.out.println(s);
    }
}
Теги:
string

2 ответа

4
Лучший ответ

Я предлагаю вам использовать метод string.matches или Pattern, Matcher вместо string.contains потому что contains method не принимает регулярное выражение в качестве аргумента.

String s = "aged01";
if(s.matches(".*[g-zG-Z].*")) {
    System.out.println("Error:String contains a letter from g-zG-Z");
}
else {
    System.out.println(s);
}

Вывод:

Error:String contains a letter from g-zG-Z
  • 1
    Я думаю, это потому, что метод contains не принимать регулярное выражение в качестве аргумента.
0

contains(substring) проверку фактической подстроки, она не позволяет использовать регулярное выражение, которое вы делаете. Проверьте это с помощью matches

String s = "aged01"; 
if(s.matches(".*[g-zG-Z].*")) { 
    System.out.println("Error:String contains a letter from g-zG-Z"); 
} else { 
    System.out.println(s); 
}

Здесь .* Позволяет множественное появление других символов.

  • 0
    Можете ли вы отформатировать свой ответ, чтобы мы могли легче читать ваш источник и поднять ваш ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню