一、概述
JavaScript有 Array.join()
js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve
Java有这样的东西吗?我知道我可以使用StringBuilder:
static public String join(List 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 list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"
如果您的Collection的类型不是String,则可以将Stream API与加入的Collector一起使用:
List 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类
也可能是有用的。
如若转载,请注明出处:https://www.javaidea.cn/article/8305.html