将字符串拆分为地图

时间:2014-12-04 22:11:02

标签: java regex string map split

我有以下字符串:

...
field [
name = marked
value = false
]
field [
name = currenFolder
value = null
]
...

基本上是以这种方式保存在数据库中的对象。我现在想要创建这两个字段的地图(不确定这是否是最佳解决方案,但无论如何;-)。一些建议会很棒!地图应标记为关键,值为false等。感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

  

我想正则表达式可以解决问题。

如果您使用regex,则可以使用Capturing groups提取名称

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