繁体   English   中英

Java:与String问题相比,BufferedReader行

[英]Java: BufferedReader lines compared to String issues

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

  1. 餐饮
  2. 电话
  3. 适合

然后读取每个并将其添加到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”时如何进行比较? 为什么会有额外的空格?

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

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

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

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

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

代替

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM