java 获取指定字符后的字符串
程序员文章站
2022-07-14 19:30:19
...
先上一段代码打印一下
public static void main(String[] args) {
bb();
}
public static void bb()
{
String aa="下单数量:1;金额:100;订单号:001";
Map<String,Object> map=new HashMap<String, Object>();
map.put("姓名","张三");
map.put("年龄",18);
String[] a = aa.split(";");//以;为切割把string转成string数组
for(String str:a){
String[] b=str.split(":");
map.put(b[0],b[1]);
}
String jsonString=JSONObject.toJSONString(map);
System.out.println(jsonString);
}
打印结果如下:
{"下单数量":"1","姓名":"张三","年龄":18,"订单号":"001","金额":"100"}
别走,继续往下看,因为这样代码是简单了,但是是有bug出现的,我们把aa更改一下:
String aa="下单数量:1;金额:100;订单号:001;下单链接地址:https://www.baidu.com/";
打印结果如下:
{"下单数量":"1","下单链接地址":"https","姓名":"张三","年龄":18,"订单号":"001","金额":"100"}
这个结果是不是有问题呢!对的,把http后面的具体网站给截掉了。
下面我们先了解一下以下代码的用法:
str.substring(0, str.indexOf(":"))//截取第一个:之前的所有字符串
str.substring(str.indexOf(":"))//截取第一个:之后的所有字符并且包括本身
把上面的代码替换成我们刚刚的方法:
String aa="下单数量:1;金额:100;订单号:001;下单链接地址:https://www.baidu.com/";
Map<String,Object> map=new HashMap<String, Object>();
map.put("姓名","张三");
map.put("年龄",18);
String[] a = aa.split(";");//以;为切割把string转成string数组
for(String str:a){
map.put(str.substring(0, str.indexOf(":")),str.substring(str.indexOf(":")+1));
}
String jsonString=JSONObject.toJSONString(map);
System.out.println(jsonString);
打印结果如下:
{"下单数量":"1","下单链接地址":"https://www.baidu.com/","姓名":"张三","年龄":18,"订单号":"001","金额":"100"}
完美解决
上一篇: 【JS】获取指定字符串
下一篇: js常用的正则匹配