搜索文本文件的不确定性

时间:2013-03-28 22:56:36

标签: android search text

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

以下是代码:

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 个答案:

答案 0 :(得分:1)

看起来你通过两次调用br.readLine()来跳过所有其他行

我会做这样的事情

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

        if(line.toLowerCase().contains(search)){
            display = "found";
            break;
        }
    }

答案 1 :(得分:1)

您正在调用br.readLine()两次,这意味着您将跳过其他所有行。在你的情况下,“爸爸”在第3行,这意味着它被跳过了。

尝试:

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

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