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

搜索文本文件的不确定性

幸经艺
2023-03-14

朋友们,我有一段代码,它读取文本文件并搜索匹配的单词,但在搜索文本文件时存在不确定性。有时它能够匹配单词,有时它不能,尽管单词存在于文本文件中。

代码如下:

EditText et = (EditText) findViewById(R.id.editText1);
    String display = null;
    String search = "dadas";
    //String current = "woot";

    try {
        InputStream is = getAssets().open("file.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        while(br.readLine() != null){

            if(search.equalsIgnoreCase(br.readLine())){
                display = "found";
                break;
            }

        }

        br.close();
        is.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    et.setText(display);

以下是我的文本文件内容:

dadaist
dadaists
dadas
daddies
daddle
daddled
daddles
daddling

有人知道为什么会这样吗?假设我在文本文件中添加一个单词“finish”,然后搜索它,它总会找到它。但是,如果我的搜索词是“dadas”或“dadist”,则在et中生成null。

共有2个答案

汪兴为
2023-03-14

通过调用br.readLine()两次,您似乎跳过了每一行

我会做这样的事

    search = search.toLowerCase();
    String line = null;
    while((line = reader.readLine()) != null){

        if(line.toLowerCase().contains(search)){
            display = "found";
            break;
        }
    }
应志用
2023-03-14

您正在呼叫br。readLine()两次,这意味着您将每隔一行跳过一次。在你的例子中,“dadas”在第3行,这意味着它被跳过了。

尝试:

    String line = br.readLine();
    while(line != null){

        if(line.equalsIgnoreCase(search)){
            display = "found";
            break;
        }
        line = br.readLine();
    }
 类似资料:
  • 我正在编写一种方法来搜索列表形式的文字文件,搜索用户输入的文字,但如果找到一个字母,程序将返回一个肯定的结果。例如,如果我搜索“f”,当没有单词时,它将返回字典中有一个单词“f”

  • 问题内容: 经过多次尝试和多次搜索,我遇到了以下查询: 我使用此查询在包含音乐课程的大量页面中进行搜索。它相当不错。页面根据与查询的匹配程度获得得分。 除非用户搜索“ C Chord”或“ Am Chord”之类的内容,否则第一部分将被忽略。如果我搜索“ A和弦”或“ E和弦”,则称为“ C和弦”的页面始终位于顶部。 所以..我的问题的第1部分是:我该如何解决? 然后是第2部分。是否有可能使“标题

  • 我想将扫描的pdf文件转换为文本可搜索的pdf文件。我想给一个输入扫描的PDF然后我的预期输出是可搜索的PDF。 很少有工具可以将扫描的pdf文件中的文本作为输出,但我希望可以搜索文本的pdf文件作为输出,而不仅仅是文本。 我在这里搜索了一下,找到了一个解决方案,但我的生产服务器是amazon centos,这个工具的安装只适用于ubuntu,不适用于amazon centos。 如果需要,我准备

  • 问题内容: 如何使用Python 3搜索和替换文件中的文本? 这是我的代码: 输入文件: 当我在上面的输入文件中搜索并将“ ram”替换为“ abcd”时,它起了一种魅力。但是,反之亦然,即用“ ram”替换“ abcd”时,一些垃圾字符会保留在末尾。 用“ ram”代替“ abcd” 问题答案: fileinput已经支持就地编辑。stdout在这种情况下,它将重定向到文件:

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

  • 我有一个装满票证信息的CSV文件。我创建了一个小脚本,将票证编号以空格分隔输入到列表中,该列表搜索CSV文件中的每个票证,如果找到票证,它会输出该行的信息。 我的问题是,如果我搜索的票证不在CSV文件中,它只会跳过它并继续,但我希望它告诉我该票证不在文件中。据我所知,它正在按行或行搜索CSV文件。如果我尝试一个else语句,它将开始打印CSV文件中的每一行,如果该票据不在该行中。 我需要能够输入多