【问题标题】:Split a string to a map将字符串拆分为地图
【发布时间】:2015-02-02 23:41:29
【问题描述】:

我有以下字符串:

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

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

【问题讨论】:

  • 请用您使用的编程语言标记问题。
  • 认为您应该将该对象序列化为 json 字符串并保存,然后您可以将该字符串恢复为哈希类型
  • 谢谢。但这不是如何保存的问题,而不是如何从保存的数据中重新创建地图的问题。我猜正则表达式可以解决问题。例如 split("field") 这是一个开始,但我只是错过了这个想法。提示?

标签: java regex string map split


【解决方案1】:

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

如果你使用regex,你可以使用Capturing groups来提取namevalue

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

【讨论】:

    猜你喜欢
    • 2014-04-01
    • 2021-09-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多