切割字符获取URL路径

接着上一篇文章获取的编码后的URL地址,但是后边也避免不了
这一连串的数据

?Expires=1637911586&OSSAccessKeyId=TMP.3KjRewnmoU4wcLHa4q1J5JcDZ43q4wtVGiVwqWgwB1SPC4kvooe9kKAiLQSTikuCcY1spTwKw9ANTPgoAEvDor6eLfpywK&Signature=6fu02tzi8oyUtSDwIlngoXEW5sI%3D

?Expires后边的数据代表链接的有效时间,但是我们不需要后边这段数据,所以需要进行切割
所以需要在?Expires这进行切割
首先判断字段是否存在
不存在就需要切割了,就是没有有效时间限制的

   boolean status = path.contains(str);

从第一个数据切割到出现?的位置

path.substring(0,path.indexOf("?"))

然后就会出现前边一段的数据

https://class-repository.oss-cn-xxx.xxx.com/4/%E8%B6%85%E9%9F%B3%E9%80%9F%E9%A3%9E%E8%A1%8C1.mp4

可是我需要后边这串编码的数据
然后再从后往前切割一段

path1.substring(path1.lastIndexOf("/")+1); //外网

就可以得到我们想要的结果了

%E8%B6%85%E9%9F%B3%E9%80%9F%E9%A3%9E%E8%A1%8C1.mp4

这段是没有有效时间的切割方式
从后往前切割
为啥+1是一位这个切割的获取值是前闭后开的[ 1 ,3);

path.substring(path.lastIndexOf("/") + 1, path.length());

最后附完整代码

public static String getSubToName(String path) {
    String str  = "?Expires";
    boolean status = path.contains(str);
    if(status){
        String path1 =path.substring(0,path.indexOf("?"));
        return path1.substring(path1.lastIndexOf("/")+1); //外网
    }else {
        return path.substring(path.lastIndexOf("/") + 1, path.length()); //内网
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值