番石榴,Files.readLines()和空白区域

mip*_*mip 4 java string file-io guava

我有以下代码,它使用了Guava的Files.readLines()方法:

List<String> strings = Lists.newArrayList();
final File file = new File(filePath);
if (file.isFile()) {
  try {
    strings= Files.readLines(file, Charsets.UTF_8);
  }
  catch (IOException ioe) {}
}
else {
  // File does not exist
}
Run Code Online (Sandbox Code Playgroud)

一旦我有了我的String列表,我想测试一下,看看我正在查看的当前字符串是否在文件中.

String myString = "foo";
if (strings.contains(myString)) {
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

但是,我想使容忍原始文件的代码包含前导或尾随空格(即" foo ").

实现这一目标的最优雅方式是什么?

Lou*_*man 6

我能想到的唯一替代tskuzzy方法的方法如下:

List<String> trimmedLines = Files.readLines(file, Charsets.UTF_8,
  new LineProcessor<List<String>>() {
    List<String> result = Lists.newArrayList();

    public boolean processLine(String line) {
      result.add(line.trim());
    }
    public List<String> getResult() {return result;}
  });
Run Code Online (Sandbox Code Playgroud)