String.matches
是 Java 编程语言中的一个方法,用于检查字符串是否符合给定的正则表达式模式。这个方法返回一个布尔值,如果整个字符串与提供的正则表达式匹配,则返回 true
;否则返回 false
。
matches
方法的基本语法如下:
public boolean matches(String regex)
这里有一个简单的例子来说明如何使用 String.matches
方法:
public class Main {
static boolean isPhoneNumeral(String s) {
return s.matches("\\d{3}-\\d{3}-\\d{4}");
}
public static void main(String[] args) {
String phoneNumber = "123-456-7890";
// 检查电话号码是否符合特定格式
if (isPhoneNumeral(phoneNumber)) {
System.out.println("电话号码格式正确");
} else {
System.out.println("电话号码格式错误");
}
}
}
需要注意的是,String.matches
方法会将整个字符串与正则表达式进行匹配,而不仅仅是寻找一个匹配的部分。如果你想要在字符串中查找部分匹配,可以考虑直接使用 Pattern
和 Matcher
类或者 String
类的 replaceAll
, replace
, split
等方法。
需要注意的是,每次调用String.matches,都在内部为正则表达式创建了一个 Pattern 实例,并且只使用一次,之后就进行垃圾收集了。而创建一个 Pattern 实例是很昂贵的,因为它需要将正则表达式编译成有限的状态机。因而,如果同一个正则表达式会被反复使用,应该使用 Pattern.compile(regex) 预编译该模式,然后使用 matcher 方法进行匹配。
public class Main {
private static final Pattern PHONE = Pattern.compile("\\d{3}-\\d{3}-\\d{4}");
static boolean isPhoneNumeral(String s) {
return PHONE.matcher(s).matches();
}
public static void main(String[] args) {
String phoneNumber = "123-456-7890";
// 检查电话号码是否符合特定格式
if (isPhoneNumeral(phoneNumber)) {
System.out.println("电话号码格式正确");
} else {
System.out.println("电话号码格式错误");
}
}
}