Java - 将String数组转换为Hash映射

时间:2013-11-08 13:12:25

标签: java regex arrays hashmap

我有以下数值:

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})$ )

我该怎么做......

由于

2 个答案:

答案 0 :(得分:0)

非常感谢你的所有评论,

这就是我如何做到的,希望人们喜欢能比这更好的

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

答案 1 :(得分:0)

由于你有一个'###'分隔符来拆分字符串,那么你想要做的只是构造一个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]);

这就是你要求的吗?