是否有一个简单的函数可以将所有元素和键值连接到一个字符串
Map<String, String> m = new HashMap<String, String>();
m.put("lebron", "james");
m.put("kevin", "durant");m.join(",")应生成:"lebronjames,kevindurant“
我正在寻找一种使用guava或apache common (StringUtils) Java libs的更简单(不太冗长)的解决方案,而不是遍历地图
发布于 2012-06-11 07:10:19
使用
Map<String, String> m = new HashMap<String, String>();
m.put("lebron", "james");
m.put("kevin", "durant");
Joiner.MapJoiner joiner = Joiner.on(",").withKeyValueSeparator("");
System.out.println(joiner.join(m)); // return lebronjames,kevindurant发布于 2012-06-11 06:56:45
String mapString = m.toString();
String newStr = mapString.substring(1, mapString.length() - 1).replaceAll("=", "");这取决于AbstractMap.toString()的行为。我从来都不习惯于依赖toString实现。
所以我更喜欢迭代这个列表。事实上,迭代过程也非常简短:
for (String key : m.keySet())
newStr += key + m.get(key) + ",";
newStr = newStr.substring(0, newStr.length() - 1);编辑任何你喜欢的StringBuffer,StringBuilder代码。
发布于 2015-07-21 10:40:14
在Java8中,如果使用ConcurrentHashMap
ConcurrentHashMap<String, String> m = new ConcurrentHashMap<>();
m.put("lebron", "james");
m.put("kevin", "durant");
String result = m.reduce(1, (k, v) -> (k + v), (r1, r2) -> r1 + "," + r2);https://stackoverflow.com/questions/10972970
复制相似问题