📜  Java中的模式匹配(String,CharSequence)方法与示例(1)

📅  最后修改于: 2023-12-03 14:42:58.256000             🧑  作者: Mango

Java中的模式匹配(String,CharSequence)方法与示例

在Java中,可以使用String类和CharSequence接口中的模式匹配方法来查找字符串中与给定模式匹配的部分。

String类的模式匹配方法

String类中的模式匹配方法有三种,分别是matches()replaceAll()replaceFirst()

matches()方法

matches()方法用于测试字符串是否与给定的正则表达式匹配。如果匹配成功,则返回true;否则返回false

String str = "Hello World!";
boolean isMatched = str.matches("H.*d!");
System.out.println(isMatched); // true

在上面的示例中,使用正则表达式H.*d!来匹配字符串str,匹配成功,输出结果为true

replaceAll()方法

replaceAll()方法用于用给定的替换字符串替换匹配的子字符串。可以使用正则表达式指定要替换的子字符串。

String str = "Hello Java!";
String replacedStr = str.replaceAll("Java", "World");
System.out.println(replacedStr); // Hello World!

在上面的示例中,使用正则表达式Java来匹配str中的子字符串,并使用World来替换匹配的子字符串。输出结果为Hello World!

replaceFirst()方法

replaceFirst()方法与replaceAll()方法类似,但是只替换第一个匹配的子串。

String str = "Hello Java and Java!";
String replacedStr = str.replaceFirst("Java", "World");
System.out.println(replacedStr); // Hello World and Java!

在上面的示例中,使用正则表达式Java来匹配str中的第一个子字符串,并使用World来替换匹配的子字符串。输出结果为Hello World and Java!

CharSequence接口的模式匹配方法

CharSequence接口中定义了三个模式匹配方法,分别是charAt()subSequence()matches()

charAt()方法

charAt()方法返回指定索引处的字符。可以用于从匹配字符串中提取字符。

String str = "Hello World!";
Pattern pattern = Pattern.compile("W.*d!");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    char c = matcher.group().charAt(4);
    System.out.println(c); // d
}

在上面的示例中,使用正则表达式W.*d!来匹配字符串str,匹配成功后获取匹配的结果,并使用charAt()方法获取匹配结果中索引为4的字符,即d。输出结果为d

subSequence()方法

subSequence()方法返回指定范围内的字符序列。可以用于从匹配字符串中提取子字符串。

String str = "Hello World!";
Pattern pattern = Pattern.compile("W.*d!");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    CharSequence subStr = matcher.group().subSequence(4, 6);
    System.out.println(subStr); // dl
}

在上面的示例中,使用正则表达式W.*d!来匹配字符串str,匹配成功后获取匹配的结果,并使用subSequence()方法获取匹配结果中索引为4到6的子字符串,即dl。输出结果为dl

matches()方法

matches()方法用于测试指定的字符序列是否与给定的正则表达式匹配。如果匹配成功,则返回true;否则返回false

CharSequence str = "Hello World!";
boolean isMatched = Pattern.matches("H.*d!", str);
System.out.println(isMatched); // true

在上面的示例中,使用正则表达式H.*d!来匹配字符序列str,匹配成功,输出结果为true

以上就是Java中模式匹配的方法和示例。这些方法可帮助程序员在处理字符串时更加灵活自如。