Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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_String_Map_Split - Fatal编程技术网

Java 将字符串拆分为映射

Java 将字符串拆分为映射,java,regex,string,map,split,Java,Regex,String,Map,Split,我有以下字符串: ... field [ name = marked value = false ] field [ name = currenFolder value = null ] ... 它基本上是以这种方式保存在数据库中的对象。现在我想创建这两个字段的映射(不确定这是否是最佳解决方案,但无论如何;-)。一些建议将是伟大的!地图上应标有as键、as值false等。。谢谢你的帮助 我想正则表达式会起作用 如果使用,则可以使用提取名称和值: import java.util.*; 导入ja

我有以下字符串:

...
field [
name = marked
value = false
]
field [
name = currenFolder
value = null
]
...
它基本上是以这种方式保存在数据库中的对象。现在我想创建这两个字段的映射(不确定这是否是最佳解决方案,但无论如何;-)。一些建议将是伟大的!地图上应标有as键、as值false等。。谢谢你的帮助

我想正则表达式会起作用

如果使用,则可以使用提取名称和值:

import java.util.*;
导入java.util.regex.*;
公共类地图
{ 
公共静态void main(字符串[]argv)
{
String=“…\n字段[\nname=marked\n值=false\n]\n”
+“字段[\nname=currenFolder\n值=null\n]\n..\n”;
Map Map=newhashmap();
模式p=Pattern.compile(“field.(?s).name=(.*?).value=(.*?)”;
匹配器m=p.Matcher(字符串);
while(m.find())
map.put(m.group(1)、m.group(2));
系统输出打印项次(map);
}
}

请用您正在使用的编程语言标记问题。您认为应该将该对象序列化为json字符串并保存,然后您可以将该字符串还原为哈希类型谢谢。但问题不在于如何保存,而在于如何从保存的数据中重新创建地图。我想正则表达式会起作用。例如,拆分(“字段”),这是一个开始,但我只是错过了这个想法。暗示?
import java.util.*;
import java.util.regex.*;

public class map
{ 
    public static void main(String[] argv)
    {
        String string = "...\nfield [\nname = marked\nvalue = false\n]\n"
                      + "field [\nname = currenFolder\nvalue = null\n]\n...\n";
        Map<String, String> map = new HashMap<String, String>();
        Pattern p = Pattern.compile("field .(?s).name = (.*?).value = (.*?).]");
        Matcher m = p.matcher(string);
        while (m.find())
            map.put(m.group(1), m.group(2));
        System.out.println(map);
    }
}