Преобразовать строку в карту Ex - String str = "{Topic0: 0, Topic1: 1, Topic2: 0}"; - PullRequest
0 голосов
/ 17 июня 2020
String str = "{Topic0 : 0, Topic1 :1, Topic2 : 2}";

Как преобразовать вашу строку, которая содержит, ключ и значение, в карту?

map.put("Topic0", 0);
map.put("Topic1", 1);
map.put("Topic2", 2);

Итак, я хочу иметь карту с ключом «Тема0, Тема1, Тема2» и соответствующие значения как "0, 1, 2".

1 Ответ

1 голос
/ 17 июня 2020
public static void main(String[] strings) {
    String str = "{Topic0 : 0, Topic1 :1, Topic2 : 2}";
    //remove first and last char, i.e { and }
    str = str.substring(1, str.length()-1);
    Map<String,String> myMap = Pattern.compile("\\s*,\\s*")
            //split at ,
            .splitAsStream(str)
            //split at :
            .map(e -> e.split("\\s*:\\s*"))
            //map
            .map(e -> new AbstractMap.SimpleEntry<>(e[0],e[1]))
            //collect
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
    System.out.println(myMap);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...