我想将地图{key:column,key1:column1}转换为csv字符串“key = column,key1 = column”。
我正在获取入口映射并使用键和值构造字符串。这就是我所拥有的:
entry.forEach(entryVal ->{
result.append(entryVal.getKey() + "=" + entryVal.getValue());
result.append(',');
});
int index = result.lastIndexOf(",");
if(index == result.length()-1){
result.deleteCharAt(index);
return result.toString();
}
当然,看起来很难看,特别是我必须对逗号进行后处理。 想知道是否有更清洁的方法吗?
注意:我不需要进行代码审查,只需要知道一种不同但更清晰的方式来编写同样的东西
答案 0 :(得分:6)
这可以使用joining
收集器完成:
String str = map.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue())
.collect(Collectors.joining(","));
答案 1 :(得分:1)
不要过度复杂化:
String str = map.toString().replace(":", "=").replaceAll("^.|.$", "");