Java:转换List< String>到一个字符串 [英] Java: convert List<String> to a String
问题描述
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"
如果你有一个其他类型而不是String的Collection,你可以使用Stream API与加入收藏家:
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:转换List< String>到一个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!