Java:将List 转换为String

问题:

JavaScript有Array.join()

js>["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 API与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类也可能是有用的。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Java: convert List to a String

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 66 = 71