【问题标题】:Converting List<String> to String using java streams [duplicate]使用 java 流将 List<String> 转换为 String [重复]
【发布时间】:2020-12-16 00:13:21
【问题描述】:

我在ArrayList 中有值作为Value1, Value2, Value3
现在我需要使用 Java Streams 以单个 String 作为 Value1_Value2_Value3 的方式返回它们。

我试过了,但是没用

myList.stream().map((s)->s+"_").toString();

我也尝试过collect(toList());,但我不确定如何进一步将其转换为String

我该怎么做?

【问题讨论】:

  • 使用collect(Collectors.joining("_"))
  • 为什么不直接使用String.join("_", myList)

标签: java java-8 java-stream


【解决方案1】:

如果您的myList 已经包含String(或任何其他CharSequence),那么您根本不需要流,只需调用String.join

String joined = String.join("_", myList);

否则,您可以使用 Collectors.joining 从任何旧流中生成 String

String joined = myList.stream().map(Object::toString).collect(Collectors.joining("_"));

【讨论】:

  • 从问题的标题看来,我的 OP 使用的是List&lt;String&gt;,所以map 可以省略。
  • @dariosicily:如果真的是List&lt;String&gt;,那么整个第二行是不必要的,这就是为什么我把更简单的版本放在第一位。
  • 同意你的一切,我的考虑是基于 OP 试图使用流解决问题的事实,可能不知道String.join
  • @dariosicily:这就是我在回答的第一段中写的字面意思。如果他们不阅读文本,而只是复制代码,那么再多的澄清也无济于事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2020-03-17
  • 2021-09-17
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多