【问题标题】:Compare values between a .txt file and editText比较 .txt 文件和 editText 之间的值
【发布时间】:2017-04-14 22:41:11
【问题描述】:

我正在尝试为我的应用创建黑名单,因此用户通过 editText 输入的 blacklist.txt 文件中存在的任何单词都将被标记出来。我下面的代码没有做任何事情,我不知道为什么。

private  String comparevalue()  {
    BufferedReader buffered = null;

        String val = editbox.getText().toString();
        InputStream inputStream =getResources().openRawResource(R.raw.blacklist);
        buffered = new BufferedReader(new InputStreamReader(inputStream));

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

            line = buffered.readLine();

        }if (val.equalsIgnoreCase(line)) {
            Toast.makeText(this, "Working", Toast.LENGTH_LONG).show();
        }
    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(this,"Not found",Toast.LENGTH_LONG).show();
    **}
    return buffered.toString();
}**

【问题讨论】:

  • 你在外面做 if 。所以你只是在比较 val 和 null。

标签: java android


【解决方案1】:

你把 if 放在了 while 之外。所以你只是在比较 val 和 null。

把它放在 while 内,在 buffered.readLine() 之前,这样你就不会忽略第一行。像这样的:

line = buffered.readLine();
while (line != null) 
{
    if (val.equalsIgnoreCase(line)) 
    {
        Toast.makeText(this, "Working", Toast.LENGTH_LONG).show();
    }

    line = buffered.readLine();        
}

【讨论】:

    【解决方案2】:

    像这样改变你的代码

    while (line != null) {
    
            line = buffered.readLine();
            if (val.equalsIgnoreCase(line)) {
                Toast.makeText(this, "Working", Toast.LENGTH_LONG).show();
            }
        }
    

    【讨论】:

    • 如果我有一个语句,而不仅仅是我的 editText 中的一个单词,我如何遍历所有单词以检测后备列表中存在的单词。 if (val.equalsIgnoreCase(line)) { for (int i=0;i>val.length();i++){ Toast.makeText(this, "Working", Toast.LENGTH_LONG).show(); }
    • 如果您要匹配的不仅仅是一个单词,那么最好使用像 rabin carp en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm 这样的字符串匹配算法,或者查看这篇文章 stackoverflow.com/a/1765616/4363046
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多