如何将List<String>转换成一个String字符串

目录

  • 问题
  • 解决

问题

问题:在Java中如何将String链表转换成一个String字符串?

Stackoverflow地址stackoverflow.com/questions/1…

在JavaScript中有Array.join()方法可以实现对应的功能,比如:

["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve

那么,Java有没有类似的方法呢? 题主自己利用StringBuilder实现了一个类似功能的方法,具体实现如下:

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}

但是,题主非常想知道JDK有没有类似的接口方法,如果已经有了,那么他这样做就没有意义了。

解决

最佳回答! 如果你使用的Java 8,那么你不需要依赖任何第三方库就可以实现该功能,你可以使用String.join()方法。 具体代码可以参考如下:

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"

如果集合类型不是单独的String,你也可以使用Stream接口和Collector的joining()方法实现对应的功能,具体代码如下:

List<Person> list = Arrays.asList(
  new Person("John", "Smith"),
  new Person("Anna", "Martinez"),
  new Person("Paul", "Watson ")
);

String joinedFirstNames = list.stream()
  .map(Person::getFirstName)
  .collect(Collectors.joining(", ")); // "John, Anna, Paul"

另外,StringJoiner类可能也是可以考虑的。

作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 优快云 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data-Mining

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值