我想检查字符串的任何部分是否包含[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);
}
}
答案 0 :(得分:4)
我建议您使用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
答案 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);
}
此处.*
允许多次出现其他字符。