首页 > 解决方案 > 将字符串存储到带有出现的哈希图中

问题描述

我有一个返回某种字符串的方法。我想将单个单词及其出现次数存储在 HashMap 中?

public static void main(String[] args) {
        String s = "{link:hagdjh, matrics:[{name:apple, value:1},{name:jeeva, value:2},{name:abc, value:0}]}";

        String[] strs = s.split("matrics");
        System.out.println("Substrings length:" + strs.length);
        for (int i = 0; i < strs.length; i++) {
            System.out.println(strs[i]);
        }

    }

例如,我有一个字符串- "{link: https://www.google.co.in/,矩阵:[{name:apple, value:1},{name:graph, value:2},{name :abc, 值:0}]}";

Now my hashmap should look like

apple = 1
graph = 2
abc = 0

我应该如何进行?

我知道如何使用 HashMaps。在这种情况下,我的问题是我不知道如何解析给定的字符串并将单词及其出现次数存储起来。

标签: javastringsortingsplithashmap

解决方案


String regex = "\\{name:(.*), value:(\\d+)\\}";
            HashMap<String, Integer> link = new HashMap<>();

            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(s);

            while (matcher.find()){
                String found = matcher.group(1);
                String number = matcher.group(2);
                link.put(found, Integer.parseInt(number));
            }

推荐阅读