2017-09-26 67 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("^.|.$", ""); 
相關問題