Java:转换列表<字符串>到 join()d 字符串 [英] Java: convert List&lt;String&gt; to a join()d String

查看:39
本文介绍了Java:转换列表<字符串>到 join()d 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JavaScript 有 Array.join()

JavaScript has Array.join()

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

Java 有这样的东西吗?我知道我可以用 StringBuilder 自己拼凑一些东西:

Does Java have anything like this? I know I can cobble something up myself with 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 的一部分,那么这样做就没有意义了.

.. but there's no point in doing this if something like it is already part of the JDK.

推荐答案

使用 Java 8,您无需任何第三方库即可完成此操作.

With Java 8 you can do this without any third party library.

如果您想加入一个字符串集合,您可以使用新的 String.join() 方法:

If you want to join a Collection of Strings you can use the new String.join() method:

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

如果您的集合类型不是字符串,您可以使用带有 加入收藏家:

If you have a Collection with another type than String you can use the Stream API with the joining Collector:

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 类可以也很有用.

The StringJoiner class may also be useful.

这篇关于Java:转换列表<字符串>到 join()d 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆