Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将字符串数组转换为哈希映射_Java_Regex_Arrays_Hashmap - Fatal编程技术网

Java-将字符串数组转换为哈希映射

Java-将字符串数组转换为哈希映射,java,regex,arrays,hashmap,Java,Regex,Arrays,Hashmap,我有以下价值观: 1. nickname=Antony###account=4587569854256 2. nickname=^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$###account=^([0-9]{3,20})$ 1。昵称=安东尼###账户=4587569854256 2.昵称=^(?![])(?=.[\w])。{1,70}(?)? 我可以拆分这些字符串,但如何将它们作为键和值对放到映射中 好像 `1.` valueMap(nickname=Anton

我有以下价值观:

1. nickname=Antony###account=4587569854256
2. nickname=^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$###account=^([0-9]{3,20})$ 
1。昵称=安东尼###账户=4587569854256
2.昵称=^(?![])(?=.[\w])。{1,70}(?)?
我可以拆分这些字符串,但如何将它们作为键和值对放到映射中

好像

`1.` valueMap(nickname=Antony,account=4587569854256) and 
`2.` regExMap(nickname==^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$,account==^([0-9]{3,20})$ )
`1.`valueMap(昵称=Antony,账户=4587569854256)和
`2.`regExMap(昵称==^(?![])(?=.[\w])。{1,70}(?)?
我怎样才能做到这一点


谢谢

非常感谢您的评论

我就是这样做的,希望像我这样的人能给予比这更好的东西

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]);
        }
    }

}
import java.util.HashMap;
导入java.util.Map;
公共类拆分字符串{
公共静态void main(字符串[]args){
String value=“昵称=Antony###account=4587569854256”;
字符串[]arrValue=value.split(“####”);
Map valueMap=新的HashMap();
for(字符串:arrValue){
String[]映射对=String.split(“”);
valueMap.put(映射对[0],映射对[1]);
}
}
}
多亏了joni

既然您得到了一个“####”分隔符来拆分字符串,那么您要做的就是构造一个HashMap并以迭代方式映射它们

比如:

HashMap hm=newhashmap();
yourString=“昵称=Antony###account=4587569854256”;
String[]value=String.split(“####”);
字符串[]keyValue=value[0]。拆分(“”);
字符串[]keyValue1=值[1]。拆分(“”);
hm.put(keyValue[0],keyValue[1]);
hm.put(keyValue1[0],keyValue1[1]);

这就是你想要的吗?

你是在问如何在映射中放置键和值吗?也就是说,如何使用put(键,值)方法?@Joni是的,当我拆分
.split(#####)时)
我将
昵称=Antony和昵称=Antony
现在我希望它们作为键和值出现在hashmap中哪个是键,哪个是值?Split会给你一个数组,你不能循环数组并放入一个映射吗?我可以说你的理解是错误的。是的,你已经按照我在评论中说的做了:)嘿,Abdullah Shaikh,很抱歉把事情弄错了,:),你的评论让我思考并找到了我想要的,可能不是最好的,但仍然有效:)谢谢你。
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]);