2017-09-26 70 views
0

我想将映射{key:column,key1:column1}转换为csv字符串“key = column,key1 = column”。使用java将映射转换为字符串8 lambda

我正在获取入口地图,并构造出超出键和值的字符串。以下是我的:

 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(); 
     } 

当然,看起来很丑陋,特别是我不得不对逗号进行后处理。 想知道如果有更干净的方式做到这一点?

注:我不需要一个代码审查,只需要知道写,如果在所有可能的同样的事情不同,但更清洁的方式

回答

4

这可以通过使用joining收集来完成:

String str = map.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()) 
            .collect(Collectors.joining(",")); 
0

不要过于复杂:

String str = map.toString().replace(":", "=").replaceAll("^.|.$", ""); 
相关问题