欢迎访问宙启技术站
智能推送

Java函数实现根据关键字搜索字符串的方法

发布时间:2023-05-26 06:21:03

在Java中实现根据关键字搜索字符串的方法,可以用到字符串的一些方法,如indexOf()、substring()、split()等。

1. indexOf()方法

indexOf()方法用于查找指定字符串在另一个字符串中 次出现的位置。如果找到了指定的字符串,则返回其在字符串中的索引位置,否则返回-1。

下面是一个使用indexOf()方法实现关键字搜索的例子:

public static int[] searchKeyword(String text, String keyword) {
    ArrayList<Integer> indexes = new ArrayList<>();
    int index = 0;
    while ((index = text.indexOf(keyword, index)) != -1) {
        indexes.add(index);
        index += keyword.length();
    }
    int[] result = new int[indexes.size()];
    for (int i = 0; i < indexes.size(); i++) {
        result[i] = indexes.get(i);
    }
    return result;
}

该方法接受两个参数:要搜索的文本和关键字。它遍历整个文本,并使用indexOf()方法查找关键字的位置,然后将它们存储在一个ArrayList中。最终,该方法将ArrayList转换为一个int数组并返回。

2. substring()方法

substring()方法用于提取字符串中的一部分。该方法接受两个参数:要提取的子串的起始位置和结束位置(不包括结束位置本身)。如果只提供起始位置,则从起始位置开始提取到字符串末尾。

下面是一个使用substring()方法实现关键字搜索的例子:

public static String[] searchKeyword(String text, String keyword) {
    ArrayList<String> matches = new ArrayList<>();
    int index = 0;
    while ((index = text.indexOf(keyword, index)) != -1) {
        int start = Math.max(0, index - 10); // 向前10个字符
        int end = Math.min(text.length(), index + keyword.length() + 10); // 向后10个字符
        matches.add(text.substring(start, end));
        index += keyword.length();
    }
    String[] result = new String[matches.size()];
    for (int i = 0; i < matches.size(); i++) {
        result[i] = matches.get(i);
    }
    return result;
}

该方法与前一个例子类似,只不过它在找到匹配项之后,使用substring()方法从原始文本中提取出匹配项周围的一些字符,并将它们存储在ArrayList中。最终,该方法将ArrayList转换为一个String数组并返回。

3. split()方法

split()方法用于将字符串分割为多个子串。该方法接受一个分隔符作为参数,并将字符串沿分隔符分割为多个子串,然后将这些子串存储在一个数组中。

下面是一个使用split()方法实现关键字搜索的例子:

public static String[] searchKeyword(String text, String keyword) {
    String[] lines = text.split("\\r?\
"); // 按行分割字符串
    ArrayList<String> matches = new ArrayList<>();
    for (String line : lines) {
        if (line.contains(keyword)) {
            matches.add(line);
        }
    }
    String[] result = new String[matches.size()];
    for (int i = 0; i < matches.size(); i++) {
        result[i] = matches.get(i);
    }
    return result;
}

该方法先使用split()方法按行分割字符串,然后遍历每一行,并检查该行是否包含关键字。如果找到了匹配项,则将其存储在ArrayList中。最终,该方法将ArrayList转换为一个String数组并返回。

以上三种方法都可以实现在Java中根据关键字搜索字符串的功能,具体应该根据不同的需求选择不同的方法。