Я хочу проверить, содержит ли какая-либо часть строки букву из диапазона [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.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
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);
}
Здесь .*
Позволяет множественное появление других символов.
contains
не принимать регулярное выражение в качестве аргумента.