当前位置: 首页 > 知识库问答 >
问题:

搜索文本文件

王骏
2023-03-14

我正在编写一种方法来搜索列表形式的文字文件,搜索用户输入的文字,但如果找到一个字母,程序将返回一个肯定的结果。例如,如果我搜索“f”,当没有单词时,它将返回字典中有一个单词“f”

public static void Option3Method(String dictionary) throws IOException {
    Scanner scan = new Scanner(new File("wordlist.txt"));
    String s;
    String words[] = new String[500];
    String word = JOptionPane.showInputDialog("Enter a word to search for");
    while (scan.hasNextLine()) {
        s = scan.nextLine();
        int indexfound = s.indexOf(word);
        if (indexfound > -1) {
            JOptionPane.showMessageDialog(null, "Word was found");
        } else if (indexfound < -1) {
            JOptionPane.showMessageDialog(null, "Word was not found");
        }
    }
}

共有3个答案

巫马善
2023-03-14

你说字母,你说单词,你到底在搜索什么?

如果你搜索单词,你必须在单词边界内搜索一个单词:正则表达式java.util.regex.模式\b,如anubhava所示。

如果(indexfound),则可以替换}else

湛宝
2023-03-14

使用如下方法代替字符串索引

boolean matched = s.matches("\\b" + word + "\\b");

这将确保在具有单词边界的行中找到用户输入的单词。

顺便说一句,不清楚为什么你声明了一个包含500个元素的字符串数组,你没有在任何地方使用它。

呼延卓
2023-03-14
if (indexfound>-1)
{ 
    JOptionPane.showMessageDialog(null, "Word was found");
}
 else if (indexfound<-1)
 {
    JOptionPane.showMessageDialog(null, "Word was not found");}
 }

此代码的问题是,索引查找可以等于-1,但不能小于-1。更改<代码>

另一种选择

这是一种非常晦涩的方法,用于检查另一个String中是否存在String。在String对象中使用匹配方法更合适。这是留档。

示例

类似于:

String phrase = "Chris";
String str = "Chris is the best";
// Load some test values.
if(str.matches(".*" + phrase + ".*")) { 
    // If str is [something] then the value inside phrase, then [something],true.
 }

 类似资料:
  • 问题内容: 我有很多小文本(说大约500个单词)和两个数据库,每个数据库大约有10.000个条目(关键字)。 现在,我想处理每个文本,并找出文本中包含哪些关键字(保存在2个数据库中的关键字)。 你们中的某人是否有有效地做到这一点的好方法? 我想对每个文本进行处理并对其进行索引(也许使用lucene),然后再针对它搜索数据库,但是我真的不知道lucene是否是正确的工具。 问题答案: Lucene正

  • 朋友们,我有一段代码,它读取文本文件并搜索匹配的单词,但在搜索文本文件时存在不确定性。有时它能够匹配单词,有时它不能,尽管单词存在于文本文件中。 代码如下: 以下是我的文本文件内容: 有人知道为什么会这样吗?假设我在文本文件中添加一个单词“finish”,然后搜索它,它总会找到它。但是,如果我的搜索词是“dadas”或“dadist”,则在et中生成null。

  • 带有Mongoose的MongoDB(3.2.0) 收藏: 用户 null 查询: =>找到 =>找到(搜索大小写敏感为false) =>找到(使用diacriticSensitive搜索为false) =>找到(部分搜索) =>未找到(部分搜索) =>未找到(部分搜索) 你知道为什么我用查询“Leo”或“L”得到0个结果吗? null

  • 我正在ruby平台上使用twitter流媒体API。在twitter gem的帮助下(https://github.com/sferik/twitter)我能找到流文本。 通过查看推文,我可以获得推文。 :文本= 但我需要准确的搜索文本,它输入了如下内容:search= 在检查推文,我得到的输出为

  • 拉平文本 删除文本信息(不删除文本本身) 向文档添加覆盖。 目前,我不知道如何实现这一点。有没有人知道怎么解决这个问题?

  • 问题内容: 我是Lucene的新手,在创建 用于查询文本文件集合的 简单代码时遇到一些问题。 我尝试了此示例,但与新版本的Lucene不兼容。 UDPATE: 这是我的新代码,但是仍然无法使用。 问题答案: Lucene是一个相当大的主题,涉及很多类和方法,通常您必须至少了解一些基本概念才能使用它。如果您需要快速可用的服务,请改用Solr。如果您需要对Lucene的完全控制,请继续阅读。我将介绍一