【问题标题】:Java - Convert String array to Hash mapJava - 将字符串数组转换为哈希映射
【发布时间】:2013-11-20 12:21:42
【问题描述】:

我有以下价值观:

1. nickname=Antony###account=4587569854256
2. nickname=^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$###account=^([0-9]{3,20})$ 

我可以拆分这些字符串,但是如何将它们作为键值对放入映射中?

如果为

`1.` valueMap(nickname=Antony,account=4587569854256) and 
`2.` regExMap(nickname==^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$,account==^([0-9]{3,20})$ )

我该怎么做...

谢谢

【问题讨论】:

  • 您是在问如何在地图中放置键和值?即如何使用put(key, value)方法? docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
  • @Joni 是的,当我拆分 .split("###") 时,我将 nickname=Antony and nickname=Antony 现在我希望这些在 hashmap 中作为键和值
  • 哪个是键,哪个是值?
  • Split 会给你一个数组,你不能循环遍历数组并放入一个地图吗?

标签: java regex arrays hashmap


【解决方案1】:

既然你有一个 '###' 分隔符来分割字符串,那么你要做的就是构造一个 HashMap 并迭代地映射它们?

喜欢:

HashMap<String,String> hm = new HashMap<String,String>();
yourString = "nickname=Antony###account=4587569854256"; 
String[] value = string.split("###");
String[] keyValue = value[0].split("=");
String[] keyValue1 = value[1].split("=");
hm.put(keyValue[0],keyValue[1]);
hm.put(keyValue1[0],keyValue1[1]);

这是你要求的吗?

【讨论】:

    【解决方案2】:

    非常感谢你们所有的cmets,

    这就是我的做法,希望喜欢的人能比这做得更好

    import java.util.HashMap;
    import java.util.Map;
    
    public class SplitStrings {
        public static void main(String[] args) {
            String value = "nickname=Antony###account=4587569854256";
            String[] arrValue = value.split("###");
            Map<String,String> valueMap= new HashMap<String, String>();
            for (String string : arrValue) {
                String[] mapPair =string.split("=");
                valueMap.put(mapPair[0], mapPair[1]);
            }
        }
    
    }
    

    感谢joni

    【讨论】:

    • 我只能说你理解错了......是的,你已经做了我在评论中所说的:)
    • 嗨,阿卜杜拉谢赫,对不起,我理解错了,:),你的评论让我思考并找到了我想要的东西,可能不是最好的,但仍然可以工作 :) 谢谢.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2022-01-08
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多