您的位置:首页 > 编程语言 > Java开发

JAVA基础(21) java代码替换指定url里的参数值

2016-03-18 13:20 471 查看
1.问题如下;

已知字符串url ="adminHeanderMenu.do/action=menu&processId=6898&t=5454654654654",java后台代码发现参数processId里的值不是想要的,需要替换成"6547"?

2.解决办法:

直接上代码吧,SO easy!

方法一:

/**
* java解析代码
*
* @param url
* @param name
* @param accessToken
* @return
*/
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;
}


方法二:

/**
* 正则替换
* @param url
* @param name
* @param accessToken
* @return
*/
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 test_str = "adminHeanderMenu.do/action=menu&processId=6898&t=5454654654654";
System.out.println("str的长度" + test_str.length());
//调用方法
String replace_str ="processId"; //需要替换的参数
String replace_val = "6547"; //需要替换的值

String result1 = replaceAccessToken(test_str, replace_str, replace_val);
System.out.println("result1="+result1);

String result2 = replaceAccessTokenReg(test_str, replace_str, replace_val);
System.out.println("result2="+result2);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: