JavaScript有 Array.join()
js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
...但是,如果像这样的东西已经是JDK的一部分,那就没有意义了.
假设我们有一个简单的方法,它应该连接Person集合的所有名称并返回结果字符串.
public String concantAndReturnNames(final Collection<Person> persons) {
String result = "";
for (Person person : persons) {
result += person.getName();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法用1行的新流API forEach函数编写这段代码?
我在ArrayListas 中有值Value1, Value2, Value3。
现在我需要String像Value1_Value2_Value3使用 Java一样以 Single 的方式返回它们Streams。
我试过这个,但没有用
myList.stream().map((s)->s+"_").toString();
Run Code Online (Sandbox Code Playgroud)
我也尝试过,collect(toList());但我不确定如何进一步将其转换为String.
我该怎么做?