getQuYu/getQu.action?quid=23&cufajc=st&mudijc=cz
getQuYu/getQu.action?quid=23&mudijc=cz&cufajc=st
getQuYu/getQu.action?cufajc=st&mudijc=cz&quid=23
java 如何用其他字符替换cufajc= 和后面第一个&之间的字符即st,当然st是可变的 ,但如果他在最后就没有&了
getQuYu/getQu.action?quid=23&mudijc=cz&cufajc=st
getQuYu/getQu.action?cufajc=st&mudijc=cz&quid=23
java 如何用其他字符替换cufajc= 和后面第一个&之间的字符即st,当然st是可变的 ,但如果他在最后就没有&了
*
* @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));
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;
}
那这样我要用一个变量替换怎么办?例如我用String cf=“bj";我要得到的结果是"getQuYu/getQu.action?cufajc=bj&mudijc=cz&quid=23";
我应该从哪传入cf
不好意思我水平有限,应该是我不懂用,
就是说我要用一个变量例如String cf=“bj";去替换cufajc= 和后面第一个&之间的字符串,应该怎么传入cf这个变量。
叩谢!!!
不好意思我水平有限,应该是我不懂用,
就是说我要用一个变量例如String cf=“bj";去替换cufajc= 和后面第一个&之间的字符串,应该怎么传入cf这个变量。
叩谢!!!
方法不理解没关系,我不是给你调用的例子了吗?如果那样还看不懂,那我也无能为力了
*
* @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) : "");
}哈哈,测试代码就你自己加个参数了