1

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

这是代码:

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。

4

2 回答 2

1

看起来你通过调用br.readLine()两次来跳过每隔一行

我会做这样的事情

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

        if(line.toLowerCase().contains(search)){
            display = "found";
            break;
        }
    }
于 2013-03-28T23:01:06.880 回答
1

你打br.readLine()了两次电话,这意味着你将跳过每隔一行。在您的情况下,“dadas”在第 3 行,这意味着它被跳过了。

尝试:

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

        if(line.equalsIgnoreCase(search)){
            display = "found";
            break;
        }
        line = br.readLine();
    }
于 2013-03-28T23:02:23.227 回答