数据源
String str = "a=1;b=2;c=3";
转换后格式
String转换为Map
{”a":"1", "b":"2", "c":"3"}
实现方法
public static Map<String, Object> transStringToMap(String mapString, String separator, String pairSeparator) {
Map<String, Object> map = new HashMap<String, Object>();
String[] fSplit = mapString.split(separator);
for (int i = 0; i < fSplit.length; i++) {
if (fSplit[i]==null||fSplit[i].length()==0) {
continue;
}
String[] sSplit = fSplit[i].split(pairSeparator);
String value = fSplit[i].substring(fSplit[i].indexOf('=') + 1, fSplit[i].length());
map.put(sSplit[0], value);
}
return map;
}
public static void main(String[] args) {
String str= "a=1;b=2;c=3";
Map<String, Object> map = StringUtil.transStringToMap(str, ";", "=");
for (String key : map.keySet()) {
System.out.println("key:" + key + ", value:" + map.get(key));
}
}
使用JAVA8 新特性实现则简单很多:
public static void main(String[] args) {
String str= "a=1;b=2;c=3";
String[] strings = str.trim().split(";");
Map<String, String> stringMap = Arrays.asList(strings).stream()
.map(s -> s.split("="))
.collect(Collectors.toMap(strings1 -> strings1[0],strings1 -> strings1[1]));
}