Java函数实现根据关键字搜索字符串的方法
在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中根据关键字搜索字符串的功能,具体应该根据不同的需求选择不同的方法。
