📜  Java中的 MatchResult end() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:01:55.413000             🧑  作者: Mango

Java中的 MatchResult end() 方法和示例

简介

在Java中,MatchResult是一个接口,用于描述成功的匹配结果。end()是其中的一个方法,用于返回匹配的最后一个字符的索引,与start()方法对应。

语法
int end(int group)
int end()
参数

end()方法有一个可选参数group,表示匹配的组号,若省略则返回整个匹配结果的末尾索引。

返回值

end()方法返回匹配的最后一个字符的索引,返回类型为int

示例

下面是一个使用end()方法的示例:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestMatchResult {
    public static void main(String[] args) {
        String regex = "\\b(\\w+)-\\1\\b";
        String input = "Java-Java C++-C++";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            String match = matcher.group();
            int startIndex = matcher.start();
            int endIndex = matcher.end();
            System.out.printf("Matched \"%s\" from %d to %d.%n", match, startIndex, endIndex);
        }
    }
}

输出结果为:

Matched "Java-Java" from 0 to 9.
Matched "C++-C++" from 10 to 17.

上述示例中,使用正则表达式\b(\w+)-\1\b匹配连续出现两次的单词,即Java-JavaC++-C++。其中group()方法返回匹配的字符串,start()方法返回匹配的起始索引,end()方法返回匹配的末尾索引。注意到因为匹配结果共有两个组,因此在调用end()方法时使用了可选参数group来指定所需索引所属的组号。如果没有指定,则默认返回整个匹配结果的末尾索引。

结论

end()方法是MatchResult接口中的一个方法,用于返回匹配的末尾索引。通过本文的介绍,读者可以了解到该方法的语法、参数和返回值,并通过示例代码来掌握该方法的使用技巧。