`
lean1252
  • 浏览: 214087 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java替换指定url里的参数值

    博客分类:
  • java
阅读更多
引用
java解析替换

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


引用
正则替换

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=
分享到:
评论
3 楼 zhenglu119 2014-09-29  
还不错。解决了我一个问题。谢谢
2 楼 zhukewen_java 2014-06-03  
zhukewen_java 写道
这个是有问题的,比如一个url长这样:http://localhost/xxx/www?name=xxx&bname=xxx,当替换name的时候,就会出问题了。

说错了,应该是bname=xxx&name=xxx,根据代码,只会替换第一个name=的内容
1 楼 zhukewen_java 2014-06-03  
这个是有问题的,比如一个url长这样:http://localhost/xxx/www?name=xxx&bname=xxx,当替换name的时候,就会出问题了。

相关推荐

    filter对request请求拦截,对请求参数进行修改

    除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web.xml添加对应的配置。 &lt;!-- 特殊字符过滤 --&gt; &lt;filter-name&gt;sqlFilter &lt;filter-class&gt;weixin.idea.waiting.cq.controller.Js...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java开源包11

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包6

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包9

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包4

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包101

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包5

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包8

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包10

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包3

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包1

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    java范例开发大全源代码

     实例88 替换指定的字符 117  实例89 分割字符串 117  实例90 如何使用substring()方法截取子串 118  实例91 分解字符串 119  实例92 字母大小写转换 120  实例93 去除多余的空白 120  实例94 ...

    xheditor-1.1.14

    说明:当localUrlTest测试为false时,会将图片URL发往当前参数指定的服务器端上传接收程序,抓取成功后将本地URL返回并替换 备注:v1.1.8新添加 readTip:无障碍读屏提示 参数值:字符串(默认为空) 说明:无障碍读屏...

    java范例开发大全

    实例88 替换指定的字符 117 实例89 分割字符串 117 实例90 如何使用substring()方法截取子串 118 实例91 分解字符串 119 实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121...

    Java范例开发大全 (源程序)

     实例88 替换指定的字符 117  实例89 分割字符串 117  实例90 如何使用substring()方法截取子串 118  实例91 分解字符串 119  实例92 字母大小写转换 120  实例93 去除多余的空白 120  实例94 原始数组...

    java开源包2

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

    java开源包7

    BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4...

Global site tag (gtag.js) - Google Analytics