5

我写了一些代码来连接字符串:

String inputFile = "";      

for (String inputLine : list) {
    inputFile +=inputLine.trim());
}

但是我不能+用来连接,所以我决定使用 Guava。所以我需要使用Joiner。

inputFile =joiner.join(inputLine.trim());

但这给了我一个错误。我需要帮助来解决这个问题。非常感谢。

4

4 回答 4

22

您不需要循环,您可以使用 Guava 执行以下操作:

// trim the elements:
List<String> trimmed = Lists.transform(list, new Function<String, String>() {
    @Override
    public String apply(String in) {
        return in.trim();
    }
});
// join them:
String joined = Joiner.on("").join(trimmed);
于 2013-07-30T14:16:09.943 回答
6

“+”应该工作。遇到问题时不要使用库。试着了解本质。否则,您将拥有包含数百个库的非常复杂的代码 :))

这应该可以代替。

for (String inputLine : list) {
    inputFile += inputLine.trim();
}

您可能还想使用Stringbuilder

 StringBuilder sb = new StringBuilder("Your string");
 for (String inputLine : list) {
      sb.append(inputLine.trim());
 }
 String inputFile = sb.toString();
于 2013-07-30T14:14:24.750 回答
5

尝试

String inputFile = Joiner.on(",").join(list);
于 2013-07-30T14:16:27.810 回答
0

如果您想添加修剪,请疯狂使用 lambda:
尝试

String inputFile = Joiner.on(",")
.join(list.stream()
.map(p->p.trim())
.collect(Collectors.toList()));
于 2018-01-31T21:05:36.740 回答