java 获取指定字符后的字符串

先上一段代码打印一下

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

完美解决

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Java 8中的`indexOf(int ch)`方法来获取某个字符字符串中的第一次出现的下标。 例如: ``` String str = "Hello World"; int index = str.indexOf('o'); System.out.println(index); ``` 输出: ``` 4 ``` 如果没有找到字符,则返回-1。 例如: ``` String str = "Hello World"; int index = str.indexOf('x'); System.out.println(index); ``` 输出: ``` -1 ``` ### 回答2: 在Java 8中,我们可以使用String类的indexOf方法来获取某个字符串第一次出现的下标。该方法会返回第一次出现指定字符串的索引位置,如果没有找到则返回-1。 例如,我们有一个字符串str = "Hello, world!",我们想要找到字符串"world"第一次出现的下标,可以使用以下代码: ``` String str = "Hello, world!"; int index = str.indexOf("world"); if (index != -1) { System.out.println("字符串\"world\"第一次出现的下标为:" + index); } else { System.out.println("字符串\"world\"未找到!"); } ``` 输出结果为: ``` 字符串"world"第一次出现的下标为:7 ``` 如果没有找到指定字符串,输出结果将为: ``` 字符串"world"未找到! ``` 通过使用indexOf方法,我们可以轻松地获取某个字符串在另一个字符串中第一次出现的下标。 ### 回答3: 在Java 8中,可以使用String类的indexOf方法来获取某个字符串第一次出现的索引。indexOf方法的语法为: int indexOf(String str) 其中,str表示要搜索的字符串。 举个例子来说明如何使用indexOf方法来获取某个字符串第一次出现的索引。假设我们有一个字符串str,内容为"Hello World",现在我们想获取字符串"World"第一次出现的索引。 首先,我们需要将该字符串给一个变量: String str = "Hello World"; 然后,我们可以使用indexOf方法来获取字符串"World"第一次出现的索引: int index = str.indexOf("World"); 如果字符串"World"存在于字符串str中,则index的将为其第一次出现的索引(索引从0开始计数)。如果字符串"World"不存在于字符串str中,则index将为-1。 最后,我们可以通过打印index的来查看字符串"World"第一次出现的索引: System.out.println(index); 以上就是使用Java 8获取某个字符串第一次出现的索引的方法。请注意,indexOf方法只能获取字符串第一个出现的索引,如果你想获取所有出现的索引,你可能需要使用其他方法或循环来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值