java:检查字符串是否包含来自 g-z 的任何字母

java: check if string contains any of a letter from g-z

我想检查字符串的任何部分是否包含 [g-zG-Z] 范围内的字母。

以字符串"aged01"为例,它包含一个g,应该打印出来 "Error:String contains a letter from 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 方法不会接受正则表达式作为参数。

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); 
}

此处.*允许其他字符多次出现。