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

时间:2015-01-18 12:07:16

标签: java string

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

以字符串“aged01”为例,它包含一个g,它应该打印出来 “错误:字符串包含来自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);
    }
}

2 个答案:

答案 0 :(得分:4)

我建议您使用string.matches方法或PatternMatcher类而不是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

答案 1 :(得分: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); 
}

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

相关问题