我有下一个地图值:
{title=varchar(50), text=text}
Run Code Online (Sandbox Code Playgroud)
我试图将它转换为两个字符串,如下所示:
StringBuffer string = new StringBuffer();
for (String keyinside: values.keySet()) {
string.append(keyinside + " " + values.get(keyinside) + ", ");
}
Run Code Online (Sandbox Code Playgroud)
但是我想要的是 - 在最后一次迭代中没有包含",".我该怎么做?
短java 8替代:
String result = values.entrySet().stream().map(e -> e.getKey() + " " + e.getValue())
.collect(Collectors.joining(", "))
Run Code Online (Sandbox Code Playgroud)
Stream.map() 将地图中的所有条目转换为条目的字符串描述.
请注意,Java 8最终还添加了该功能String.join().
使用一些指标:
StringBuffer string = new StringBuffer();
boolean first = true;
for (String keyinside: values.keySet()) {
if (!first)
string.append (", ");
else
first = false;
string.append(keyinside + " " + values.get(keyinside));
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,使用 StringBuilder 更有效(假设您不需要线程安全)。
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |