Java String matches()方法及实例
matches()方法的变体是用来更准确地告诉你,而不是测试给定的字符串是否与正则表达式相匹配,因为无论何时,这个方法本身被调用为match()或match(),在这里我们传递两个参数,即我们的字符串和正则表达式,其工作和输出保持不变。
matches()方法 存在多种变体,有三种变体 ,下面列出并描述。
变体1:字符串 matches()
这个方法告诉我们这个字符串是否与给定的正则表达式匹配。 str.matches(regex)形式的该方法的调用产生的结果与表达式Pattern.matches(regex, str)完全相同 。
语法
public boolean matches(String regex)
参数: 这个字符串要被匹配的正则表达式。
返回类型: 布尔值,当且仅当字符串与给定的正则表达式匹配时返回真,否则返回假。
例子
// Java Program to Demonstrate Working of matches() Method
// of String class
// Main class
public class GFG {
// Main driver method
public static void main(String args[])
{
// Declaring and initializing a string
// Input string
String Str = new String("Welcome to geeksforgeeks");
// Display message for better readability
System.out.print(
"Does String contains regex (.*)geeks(.*) ? : ");
// Testing if regex is present or not
System.out.println(Str.matches("(.*)geeks(.*)"));
// Display message for better readability
System.out.print(
"Does String contains regex geeks ? : ");
// Testing if regex is present or not
System.out.println(Str.matches("geeks"));
}
}
输出
Does String contains regex (.*)geeks(.*) ? : true
Does String contains regex geeks ? : false
变体2:字符串 regionMatches()
这个方法有两个变体,可以用来测试两个字符串区域是否相等。
语法
public boolean regionMatches(int str_strt, String other, int other_strt,int len)
参数
- 该字符串中子区域的起始偏移量
- 字符串参数
- 字符串参数中子区域的起始偏移量
- 要比较的字符数
返回类型: 布尔值,如果这个字符串的指定子区域与字符串参数的指定子区域相匹配,则为真;否则为假。
例子
// Java Program to Demonstrate Working of regionmatches()
// method of String class
// Main class
public class GFG {
// Main driver method
public static void main(String args[])
{
// Declaring and initializing a string
String Str1
= new String("Welcome to geeksforgeeks");
// Initializing test string
String Str2 = new String("GEEKS");
// Tests whether GEEKS starts in geeksforgeeks
// starting from pos 11 and
// compares 5 characters of GEEKS
System.out.print(
"Checking if GEEKS is in geeksforgeeks( case sensitive ) : ");
System.out.println(
Str1.regionMatches(11, Str2, 0, 5));
}
}
输出
Checking if GEEKS is in geeksforgeeks( case sensitive ) : false
变体3:字符串 regionMatches() With ignoreCase
这个方法有两个变体,可以用来测试两个字符串区域是否相等。
语法
public boolean
regionMatches(boolean ignoreCase, int str_strt, String other, int other_strt,int len)
参数
- 该字符串中子区域的起始偏移量
- 字符串参数
- 字符串参数中子区域的起始偏移量
- 要比较的字符数
- ignoreCase: 如果为真,在比较字符时忽略大小写。
返回类型: 如果该字符串的指定子区域与字符串参数的指定子区域匹配,则返回true;否则返回false。匹配是精确的还是不区分大小写的,取决于ignoreCase参数。
例子
// Java Program to Demonstrate Working of regionmatches()
// Main class
public class GFG {
// Main driver method
public static void main(String args[]) {
// Declaring and initializing a string
String Str1 = new String("Welcome to geeksforgeeks");
// Initializing a test string
String Str2 = new String("GEEKS");
// Tests whether GEEKS starts in geeksforgeeks starting from pos 11
// and from 0 ( i.e starting in GEEKS) and ignores case
// and compares 5 characters of GEEKS
System.out.print("Checking if GEEKS is in geeksforgeeks( case insensitive ) : " );
System.out.println(Str1.regionMatches(true, 11, Str2, 0, 5));
}
}
输出
Checking if GEEKS is in geeksforgeeks( case insensitive ) : true