java在映射上迭代,上一次迭代除外
我有下一个映射值:
{title=varchar(50), text=text}
我试图将其转换为两个字符串,如下所示:
StringBuffer string = new StringBuffer();
for (String keyinside: values.keySet()) {
string.append(keyinside + " " + values.get(keyinside) + ", ");
}
但我想要的是在这里,而不是在最后一次迭代中。我怎么做
# 1 楼答案
使用一些指标:
顺便说一句,使用StringBuilder更有效(假设您不需要线程安全性)
# 2 楼答案
我很喜欢谷歌收藏库中的
Joiner
。你可以这样做:on
是从com.google.common.base.Joiner
静态导入的如果使用Maven,只需添加一个依赖项:
# 3 楼答案
取一个在每次迭代中递增的计数器,并获取一个if条件,该条件检查它是否在最后一次迭代
一个简单的技巧是
另外,如果线程安全不是一个问题,我建议您使用StringBuilder
# 4 楼答案
简短的java 8备选方案:
Stream.map()
将映射中的所有条目转换为该条目的字符串描述注意,Java8最后还添加了函数
String.join()
# 5 楼答案
你可以试试这个。通过它我们可以删除结尾处的逗号(,)。 希望这对你有帮助
注意:您可以参考How to remove the last character from a string?