java替换指定url里的参数值

[quote]java解析替换[/quote]

public static String replaceAccessToken(String url, String name, String accessToken) {
if(StringUtils.isNotBlank(url) && StringUtils.isNotBlank(accessToken)) {
int index = url.indexOf(name + "=");
if(index != -1) {
StringBuilder sb = new StringBuilder();
sb.append(url.substring(0, index)).append(name + "=")
.append(accessToken);
int idx = url.indexOf("&", index);
if(idx != -1) {
sb.append(url.substring(idx));
}
url = sb.toString();
}

}
return url;
}


[quote]正则替换[/quote]

public static String replaceAccessTokenReg(String url, String name, String accessToken) {
if(StringUtils.isNotBlank(url) && StringUtils.isNotBlank(accessToken)) {
url = url.replaceAll("(" + name +"=[^&]*)", name + "=" + accessToken);
}
return url;
}


测试代码


public static void main(String[] args) {
String url = "http://a.b.com?access_token=3221342231233=&";
String url1 = "http://a.b.com?a=1&access_token=323";
String url2 = "http://a.b.com?a=1&access_token=323&b=2";
String url3 = "http://a.b.com?a=1&access_token=323acesstoken=&b=2&d=";
List<String> strs = new ArrayList<String>();
strs.add(url);
strs.add(url1);
strs.add(url2);
strs.add(url3);
String paramName = "access_token";
for(String str : strs) {
String nac = "babi";
String s0 = replaceAccessToken(str, paramName, nac);
String s1 = replaceAccessTokenReg(str, paramName, nac);
System.out.println(s0.equals(s1) + " " + s0 + " " + s1);
}

true http://a.b.com?access_token=babi& http://a.b.com?access_token=babi&
true http://a.b.com?a=1&access_token=babi http://a.b.com?a=1&access_token=babi
true http://a.b.com?a=1&access_token=babi&b=2 http://a.b.com?a=1&access_token=babi&b=2
true http://a.b.com?a=1&access_token=babi&b=2&d= http://a.b.com?a=1&access_token=babi&b=2&d=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值