我有一个像这样的字符串
String a = "background-image: url(www.google.com); background-repeat: no-repeat;-webkit-background-size: 1001px 1903px;height: 1903px; width: 1001px; text-align: center; margin: 0 auto;";
我必须从字符串中获取height:和width:值,并将其替换为表单中用户输入的值。解析它的最佳方法是什么?
答案 0 :(得分:0)
你可以用分号然后用冒号分割并创建一个地图。
String a = "background-image: url(www.google.com); background-repeat: no-repeat;-webkit-background-size: 1001px 1903px;height: 1903px; width: 1001px; text-align: center; margin: 0 auto;";
HashMap kv = new HashMap();
for(String b : a.split(";")){
String[] temp = b.split(":");
kv.put(temp[0], temp[1]);
}
然后你可以按键设置值
kv.put("height", "2048px");
kv.put("width", "86em");
HashMap toString
方法生成类似于原始的输出。你只需稍微调整一下
kv.toString().replaceAll("=", ":").replace("{", "").replace("}", "")
需要注意的一点是,键的顺序变得混乱,并且不是输入字符串的“按顺序”
height:2048px, text-align:center, -webkit-background-size:1001px 1903px, width:86em, margin:0 auto, background-repeat:no-repeat, background-image:url(www.google.com)
答案 1 :(得分:0)
使用正则表达式提取它。每个只需要一行:
String height = html.replaceAll(".*(?<=height: )(.*?)(?=;).*", "$1");
String width = html.replaceAll(".*(?<=width: )(.*?)(?=;).*", "$1");