欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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"}

完美解决

相关标签: java