Java:BufferedReader行与String问题进行比较

时间:2015-10-10 10:16:30

标签: java string bufferedreader

我有一个程序正在读取一个包含项目列表的文本文件,创建一个由它读取的项目组成的ArrayList,然后将它与一些选定的单词进行比较。例如,我的文本文件包含此内容(没有编号):

  1. book
  2. desk
  3. 食物
  4. 手机
  5. 并读取每个并将其添加到ArrayList。当我尝试将String s =“book”与ArrayList中的每个元素进行比较时,我发现s不等于任何东西。这就是我在方法中所拥有的:

    for (int i = 0; i < list.size(); i++)
    {
    if (s.equals(list.get(i))
        return true;
    }
    

    s.contains()也不起作用。当我打印ArrayList时,每个String元素的末尾都有一个额外的空格。当s =“book”时,如何让比较工作?为什么还有额外的空格?

2 个答案:

答案 0 :(得分:0)

您可以使用String类的trim()方法删除字符串开头和结尾的空格。

空格可能在文件中,但您没有注意到它。请与编辑确认最后没有空格。更确切地说,请在unix上使用像hd这样的十六进制编辑器进行检查。

另外,请检查读取的字符串是否包含换行符。

答案 1 :(得分:0)

使用trim()删除前导和尾随空格。

if (s.equals(list.get(i).trim())
    return true;
}

而不是

if (s.equals(list.get(i))
  return true;
}