gpt4 book ai didi

java - 如何在数组[i]中查找标记的 i

转载 作者:行者123 更新时间:2023-11-30 06:09:29 24 4
gpt4 key购买 nike

因此,我在文档中找到了一个单词,并打印了该单词所在的行,如下所示:

假设示例文件包含:“敏捷的棕色狐狸跳过了懒狗。寒鸦喜欢我的 quartz 大狮身人面像。”

 FileInputStream fstream = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while((strLine = br.readLine()) != null){
//check to see whether testWord occurs at least once in the line of text
check = strLine.toLowerCase().contains(testWord.toLowerCase());

if(check){
//get the line, and parse its words into a String array
String[] lineWords = strLine.split("\\s+");

for(int i=0;i<lineWords.length;i++){
System.out.print(lineWords[i]+ ' ');

}

如果我搜索 'fox' ,那么 linewords[] 将包含第一句中的标记。和 linewords[3] = 狐狸。要打印狐狸的颜色,我需要 linewords[2]。我想知道如何获得 linewords[i] 中标记的“i”,因为我希望输出为 linewords[i-1]

最佳答案

您可以使用 hashMap 来存储单词和带有索引的列表。

HashMap<String, List<Integer>> indices = new HashMap<>();

因此,在 for 循环中,您填充 HashMap:

  for(int i=0;i<lineWords.length;i++){
String word = lineWords[i];
if (!indices.contains(word)) {
indices.put(word, new ArrayList<>();
}
indices.get(word).add(i);
}

要获取特定单词调用的所有索引:

  List<Integer> indicesForWord = indices.get("fox");

并获取 i - 1 单词调用:

  for (int i = 0; i < indicesForWord.size(); i++) {
int index = indicesForWord[i] - 1;
if (index >= 0 || index >= lineWords.length) {
System.out.println(lineWords[index]);
}
}

关于java - 如何在数组[i]中查找标记的 i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37760935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com