我有一个以特定格式传入的字符串,所以我想将该字符串解析为映射。我有下面这个方法将字符串解析为映射,它可以正常工作。
public static Map<String, String> parseStringToMap(String payload) {
Map<String, String> map = new HashMap<>();
try {
for (String part : payload.split("\\|")) {
String[] subparts = part.split("=", 2);
map.put(subparts[0], subparts[1]);
}
} catch (Exception ex) {
}
return map;
}
字符串的示例:
"type=3|Id=23456|user=13456"
"type=3|Id=23456|user=13456|type=3"
在我的可变映射中,同一个键可能会出现多次。因此,我需要覆盖该键的值。
另外,如果我的字符串负载不符合以下格式,则希望返回空映射。我的字符串格式始终如此,如果不符合此格式,则将返回空映射。目前,我不确定如何添加此逻辑,以便在出现此情况时返回空映射?
"a=b|c=d|e=f"
我正在使用Java 7。最好和高效的方法是什么?
我的规范只有这个。我的字符串格式始终如下:
"a=b|c=d|e=f"
它不会以任何特殊字符开头。