【问题标题】:Avoid prefix suffix for blank string in Collectors.joining [duplicate]在 Collectors.joining 中避免空白字符串的前缀后缀 [重复]
【发布时间】:2021-10-11 21:51:30
【问题描述】:

我需要从列表中读取字符串并用“,”将它们连接起来。还需要在总输出字符串的前缀和后缀中添加逗号。 示例:如果 list contans["a","b","c"] 那么输出将是 ",a,b,c,"。

现在与 Collectors.joining 完美配合,但如果列表不包含任何值,那么在输出字符串中我也会得到“,”作为输出,因为添加了前缀和后缀。

现在我想要的是避免前缀和后缀,以防空字符串。那么,有什么建议吗?

List<String> list = new ArrayList<>();
        String result = list.stream().collect(Collectors.joining(",", ",", ","));
        System.out.println(result);

提前致谢。

【问题讨论】:

  • list.stream().collect(Collectors.joining(",")String.join(",",list);
  • 无法回答,因为这已被标记为重复,但 .collect(() -&gt; new StringJoiner(",", ",", ",").setEmptyValue(""), StringJoiner::add, StringJoiner::merge).toString() 应该可以工作。
  • @Bubletan 因为这种解决方案已经在this answer 中,所以我将特定的问答添加到重复列表中......
  • 我认为列出的两个问题不能回答这个问题。但是this later answer 可以。

标签: java java-8


【解决方案1】:

只需检查列表是否有元素:

List<String> list = new ArrayList<>();
String result = "";
if (!list.isEmpty())
{
  result = list.stream().collect(Collectors.joining(",",",",","));
}
System.out.println(result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 2017-09-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2011-10-05
    • 2018-12-02
    • 2012-10-22
    相关资源
    最近更新 更多