62,614
社区成员
发帖
与我相关
我的任务
分享
/**
*
* @param src
* @param key 不包含=
* @return
*/
public static String replace(String src, String key) {
int index = src.indexOf(key);
// 从=号后面的字符开始查找
int endIndex = index + key.length() + 1;
int nextIndex = src.indexOf("&", endIndex);
return src.substring(0, endIndex) + (nextIndex > -1 ? src.substring(nextIndex) : "");
}
测试代码:
String key ="cufajc";
String s = "getQuYu/getQu.action?quid=23&cufajc=st&mudijc=cz";
System.out.println(replace(s, key));
s = "getQuYu/getQu.action?quid=23&mudijc=cz&cufajc=st";
System.out.println(replace(s, key));
s = "getQuYu/getQu.action?cufajc=st&mudijc=cz&quid=23";
System.out.println(replace(s, key)); /**
*
* @param src
* @param key 不包含=
* @param replaceStr 替换后的字符串
* @return
*/
public static String replace(String src, String key, String replaceStr) {
int index = src.indexOf(key);
// 从=号后面的字符开始查找
int endIndex = index + key.length() + 1;
int nextIndex = src.indexOf("&", endIndex);
return src.substring(0, endIndex) + replaceStr + (nextIndex > -1 ? src.substring(nextIndex) : "");
}
哈哈,测试代码就你自己加个参数了
public static void main(String[] args) {
Map<String,String> parameters=new LinkedHashMap<String,String>();
parameters.put("quid", "1");
parameters.put("cufajc", "2");
parameters.put("mudijc", "3");
String str="getQuYu/getQu.action?quid=23&cufajc=st&mudijc=cz&kkmudijc=cz";
String result=resetParameters(parameters, str);
System.out.println(str);
System.out.println(result);
}
/**
* 重置查询条件
* @param parameters
* @param targetStr
* @return
*/
public static String resetParameters(Map<String,String> parameters,String targetStr){
Set<String> keys=parameters.keySet();
String regex=null;
for(String key:keys){
regex="\\b"+key+"=[^&]+";
targetStr=targetStr.replaceAll(regex, key+"="+parameters.get(key));
}
return targetStr;
}