我是一名有帮助的助手,可以为您进行文本翻译。以下是需要翻译的内容:
问题在于该字符串是完全动态的,因此可能会像这样:
感谢您的提前支持。
我正在使用一个提供XML数据的API,并且我需要从其中一个标签中获取一个字符串形式的地图。例如:
例如:
Billable=7200,Overtime=false,TransportCosts=20$
我需要
["Billable"="7200","Overtime=false","TransportCosts"="20$"]
问题在于该字符串是完全动态的,因此可能会像这样:
Overtime=true,TransportCosts=one, two, three
Overtime=true,TransportCosts=1= 1,two, three,Billable=7200
所以我不能只按逗号和等号分割。有没有可能使用正则表达式将这样的字符串转换为映射?
目前为止,我的代码是:
private Map<String, String> getAttributes(String attributes) {
final Map<String, String> attr = new HashMap<>();
if (attributes.contains(",")) {
final String[] pairs = attributes.split(",");
for (String s : pairs) {
if (s.contains("=")) {
final String pair = s;
final String[] keyValue = pair.split("=");
attr.put(keyValue[0], keyValue[1]);
}
}
return attr;
}
return attr;
}
感谢您的提前支持。
=
分割,然后再用,
分割来完成。这里进行一些单元测试会非常有用 :) - Arnaud Denoyellesplit
就可以解决 "TransportCosts=1= 1" 的问题。 - AxelH