解析映射中具有key = value对的字符串?
我下面有String,其格式key1=value1, key2=value2
需要将其加载到地图中(Map<String,
String>),key=value
因此我需要在逗号上分割,
,然后加载cossn
为键0
及其值。
String payload = "cossn=0, itwrqm=200006033213";Map<String, String> holder =
Splitter.on(",").trimResults().withKeyValueSeparator("=").split(payload);
我在这里使用Splitter为我完成这项工作,但在某些情况下失败了。对于我的某些字符串,value具有一些带等号的字符串。所以对于下面的字符串,它对我来说是失败的:
String payload = "cossn=0, abc=hello/=world";
如何使它适用于上述情况?对于上述情况,key
将为abc
,值应为hello/=world
。这可能吗?
回答:
您可以添加一个数字来表示要拆分多少个,只需添加2个即可拆分
import java.util.HashMap;public class HelloWorld{
public static void main(String []args){
HashMap<String, String> holder = new HashMap();
String payload = "cossn=0, abc=hello/=world";
String[] keyVals = payload.split(", ");
for(String keyVal:keyVals)
{
String[] parts = keyVal.split("=",2);
holder.put(parts[0],parts[1]);
}
}
}
以上是 解析映射中具有key = value对的字符串? 的全部内容, 来源链接: utcz.com/qa/400565.html