【问题标题】:How do I convert the values in a Map from List of Strings to a String?如何将 Map 中的值从字符串列表转换为字符串?
【发布时间】:2014-04-25 06:23:39
【问题描述】:

目前我有一个地图,其中包含作为字符串的键和作为字符串列表的值。地图>

如何将这些值从字符串列表转换为单个字符串? 例如: 以下是我的地图中包含的值。

{id=[1057-27620], name=[apple,mango,banana], color=[apple:red, mango:yellow, banana:black&yellow], place=[greece]}

我希望将以上内容存储在Map<String,String>as

{id="1057-27620", name="apple,mango,banana", color="apple:red, mango:yellow, banana:black&yellow", place="greece"}

我该怎么做?

【问题讨论】:

  • 你有没有尝试过?
  • 使用 StringBuilder 迭代和构建字符串 - 到目前为止您尝试过什么?
  • 还有代码吗?提示:遍历您的列表并将字符串连接到单个字符串并添加到另一个地图
  • 问题是你为什么要连接不同的字符串?下次您想将这些值用作单独的字符串时,您将不得不再次拆分它们。
  • 两个不同的字符串?我想将列表形式的值转换为一个字符串,这样我就不必在打印出 freemarker 中的键值对时遍历列表。我基本上想要一个键和多个值的前面作为字符串。一旦我在地图中拥有它,我就可以使用它在 freemarker 中进行迭代

标签: java map hashmap multimap


【解决方案1】:

问题归结为如何将List<String> 转换为包含以逗号分隔的元素的String。好吧,在这里使用Guava's Joiner

这是一个例子:

List<String> list = Arrays.asList("aabc", "bcd", "aba");
String listToString = Joiner.on(", ").join(list); 
System.out.println(listToString);   // "aabc, bcd, aba"

我将放弃应用此功能将 Map&lt;String, List&lt;String&gt;&gt; 转换为 Map&lt;String, String&gt; 的工作。

【讨论】:

    【解决方案2】:

    尝试在“”中给出所有值并使用 , 分隔它

    【讨论】:

      【解决方案3】:

      获取字符串列表并应用List.toString().replaceAll("[","").replaceAll("]",""); 并构建另一个地图

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-26
        • 2018-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-23
        • 1970-01-01
        相关资源
        最近更新 更多