【问题标题】:how to search keyword/specfic word from text file? [closed]如何从文本文件中搜索关键字/特定单词? [关闭]
【发布时间】:2023-03-07 12:31:02
【问题描述】:

如何从文件中搜索特定的单词。就像我们有一个文本文件并且在 filem 中,文本是逐行排列的......

苹果很甜。

汽车的颜色是红色的。

天空是蓝色的..

现在用户想要搜索汽车或红色... 并通过文本框输入,所以我们如何从文件中搜索匹配来自文件文本的输入文本并显示结果。 输入单词可能在文档中出现超过 1 次,然后 reslut 还会显示它在文件中出现的次数。 那么我们该如何实现呢......

【问题讨论】:

  • 第一次尝试,如果您遇到任何问题,请在此处粘贴代码。我们一定会帮助您
  • 我不知道如何实施,如果您有任何想法,请与我分享....
  • google一下,你会发现启示。
  • @user3271822,试试 something。尝试任何东西。写一些代码,看看你能走多远。让其他人为您工作不会超出您的当前需求。
  • 任何提示如何做到这一点......

标签: java search


【解决方案1】:

这里有一个逐行读取文件的示例:

https://stackoverflow.com/a/22074145/3315914

你只需要替换几行:

     public static ArrayList<String> searchInFile(String word) {


    ArrayList<String> result = new ArrayList<String>();
    FileReader fileReader = null;
    try {
        fileReader = new FileReader(new File("input.txt"));
    } catch (FileNotFoundException e1) {
        System.err.println("File input.txt not found!");
        e1.printStackTrace();
    }

    BufferedReader br = new BufferedReader(file);
    String line;
    try {
        while ((line = br.readLine()) != null) {
          if (line.contains(word)) {
              result.Add(word);
           }
        }

    } catch (IOException e) {
        System.err.println("Error when processing the file!");
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                System.err.println("Unexpected error");
                e.printStackTrace();
            }
        }

    }
    return result;
}

【讨论】:

  • 永远不要共享代码,如果有人没有添加任何代码......但是通过提供一些提示让提问者思考。虽然,很高兴看到你的答案.. 这只会检查这个词是否存在。但是,如果该人需要确切的发生位置,请使用 indexOf() 而不是 contains()。
  • @anandc 嗯...好的。我将编辑我的答案,只是为了正确。我会听取你关于共享代码的建议。
  • @anandc 解密问题,现在用户想要搜索汽车或红色...并通过文本框输入,那么我们如何从文件中搜索与文件文本中的输入文本匹配的文件并显示 结果。输入单词可能在文档中出现超过 1 次,然后 reslut 还会显示它在文件中出现的次数。那么我们如何实现这个也许他在谈论计算单词?
  • 我们让人们思考,而不是用勺子喂食:)
  • 好点!
    这只是一个算法,可以进行必要的修改以达到目的。
【解决方案2】:

这是一个可以应用的简单逻辑

加载文件
迭代到最后
在遍历每一行时,调用 lineString.indexOf("searchKeyword")
上面一行会告诉你是否出现了 searchKeyword,如果出现了,你会得到这个词在这个字符串中的起始位置。

【讨论】:

  • 你确定他问的是这个吗?
  • 是的。这可能是一个搜索应用程序,他可能会在其中尝试突出显示搜索查询,因此获取索引不会造成伤害,而不仅仅是获取真或假。
  • 你是对的。这将涵盖更多场景
  • @anandc 非常感谢...
猜你喜欢
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多