在Java编程中,处理字符串是常见的任务之一。本文将详细介绍如何在String中查找给定单词后的特定单词索引,帮助开发者更高效地处理文本数据。
我们需要在一个字符串中找到特定单词(我们称之为"目标单词")后出现的另一个单词(我们称之为"查找单词")的索引位置。
以下是几种实现方法:
public static int findWordIndexAfter(String text, String targetWord, String searchWord) {
String[] words = text.split("\\s+");
for (int i = 0; i < words.length - 1; i++) {
if (words[i].equals(targetWord) && words[i + 1].equals(searchWord)) {
return i + 1; // 返回查找单词的索引
}
}
return -1; // 未找到
}
public static int findWordIndexAfter(String text, String targetWord, String searchWord) {
int targetIndex = text.indexOf(targetWord);
if (targetIndex == -1) return -1;
int searchStart = targetIndex + targetWord.length();
int searchIndex = text.indexOf(searchWord, searchStart);
// 验证查找单词是否紧跟在目标单词后
String between = text.substring(searchStart, searchIndex).trim();
if (between.isEmpty()) {
return countWordsBeforeIndex(text, searchIndex);
}
return -1;
}
private static int countWordsBeforeIndex(String text, int index) {
String part = text.substring(0, index);
return part.split("\\s+").length;
}
对于大型文本,方法一的split()会创建大量String对象,可能影响性能。方法二更高效,但实现稍复杂。根据实际需求选择合适的方法。
可以扩展此功能来查找第N个出现的单词后的特定单词,或者处理标点符号等更复杂的情况。
通过掌握这些方法,您将能够更灵活地处理Java中的字符串搜索需求,提高开发效率。