diff --git a/src/main/java/vip/fubuki/playersync/util/LocalJsonUtil.java b/src/main/java/vip/fubuki/playersync/util/LocalJsonUtil.java index e3423e4..f583270 100644 --- a/src/main/java/vip/fubuki/playersync/util/LocalJsonUtil.java +++ b/src/main/java/vip/fubuki/playersync/util/LocalJsonUtil.java @@ -2,10 +2,11 @@ package vip.fubuki.playersync.util; import java.util.HashMap; import java.util.Map; +import java.util.function.Function; public class LocalJsonUtil { - public static Map StringToMap(String param) { - Map map = new HashMap<>(); + private static Map stringToGenericMap(String param, Function keyParser) { + Map map = new HashMap<>(); String s1 = param.substring(1,param.length()-1); String s2 = s1.trim(); String[] split = s2.split(","); @@ -19,28 +20,16 @@ public class LocalJsonUtil { String key = trim.substring(0, equalIndex); String value = trim.substring(equalIndex + 1); - map.put(key, value); + map.put(keyParser.apply(key), value); } return map; } - public static Map StringToEntryMap(String param) { - Map map = new HashMap<>(); - String s1 = param.substring(1,param.length()-1); - String s2 = s1.trim(); - String[] split = s2.split(","); - for (int i = split.length - 1; i >= 0; i--) { - String trim = split[i].trim(); + public static Map StringToMap(String param) { + return stringToGenericMap(param, Function.identity()); + } - // only check for the first "=" as the values also contain additional "=" - int equalIndex = trim.indexOf('='); - if (equalIndex < 0) - continue; - - String key = trim.substring(0, equalIndex); - String value = trim.substring(equalIndex + 1); - map.put(Integer.parseInt(key), value); - } - return map; + public static Map StringToEntryMap(String param) { + return stringToGenericMap(param, Integer::parseInt); } }