字符串替换

xiyaopo 2018-02-06 11:53:07
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是可变的 ,但如果他在最后就没有&了
...全文
1298 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyhyn 2018-02-06
  • 打赏
  • 举报
回复
    /**
     * 
     * @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));
nyhyn 2018-02-06
  • 打赏
  • 举报
回复
    /**
     * 
     * @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) : "");
    }
哈哈,测试代码就你自己加个参数了
  • 打赏
  • 举报
回复
引用 7 楼 xiyaopo 的回复:
[quote=引用 6 楼 LinBilin_ 的回复:] [quote=引用 楼主 xiyaopo 的回复:] 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是可变的 ,但如果他在最后就没有&了
我写的那个方法不是你想要的吗?[/quote] 不好意思我水平有限,应该是我不懂用, 就是说我要用一个变量例如String cf=“bj";去替换cufajc= 和后面第一个&之间的字符串,应该怎么传入cf这个变量。 叩谢!!![/quote] 方法不理解没关系,我不是给你调用的例子了吗?如果那样还看不懂,那我也无能为力了
xiyaopo 2018-02-06
  • 打赏
  • 举报
回复
引用 6 楼 LinBilin_ 的回复:
[quote=引用 楼主 xiyaopo 的回复:] 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是可变的 ,但如果他在最后就没有&了
我写的那个方法不是你想要的吗?[/quote] 不好意思我水平有限,应该是我不懂用, 就是说我要用一个变量例如String cf=“bj";去替换cufajc= 和后面第一个&之间的字符串,应该怎么传入cf这个变量。 叩谢!!!
  • 打赏
  • 举报
回复
引用 楼主 xiyaopo 的回复:
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是可变的 ,但如果他在最后就没有&了
我写的那个方法不是你想要的吗?
xiyaopo 2018-02-06
  • 打赏
  • 举报
回复
引用 1 楼 nyhyn 的回复:
    /**
     * 
     * @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));
那这样我要用一个变量替换怎么办?例如我用String cf=“bj";我要得到的结果是"getQuYu/getQu.action?cufajc=bj&mudijc=cz&quid=23"; 我应该从哪传入cf
  • 打赏
  • 举报
回复

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

握草 2018-02-06
  • 打赏
  • 举报
回复
正则表达式?
本课程采用了漫画+动手实操+练习讲授Python编程技能。课程简介:第6章 容器类型数据6.1 序列6.1.1 序列的索引操作6.1.2 加与乘操作6.1.3 切片操作6.1.4 成员测试6.2 列表6.2.1 创建列表6.2.2 追加元素6.2.3 插入元素6.2.4 替换元素6.2.5 删除元素6.3 元组6.3.1 创建元组6.3.2 元组拆包6.4 集合6.4.1 创建集合6.4.2 修改集合6.5 字典6.5.1 创建字典6.5.2 修改字典6.5.3 访问字典视图6.6 动动手 —— 遍历字典6.7 练一练第7章 字符串7.1 字符串的表示方式7.1.1 普通字符串7.1.2 原始字符串7.1.3 长字符串7.2 字符串与数字的相互转换7.2.1 将字符串转换为数字7.2.2 将数字转换为字符串7.3 格式化字符串7.3.1 使用占位符7.3.2 格式化控制符7.4 操作字符串7.4.1 字符串查找7.4.2 字符串替换7.4.3 字符串分割7.5 动动手 —— 统计英文文章中单词出现的频率7.6 练一练第8章 函数8.1 定义函数8.2 调用函数8.2.1 使用位置参数调用函数8.2.2 使用关键字参数调用函数8.3 参数的默认值8.4 可变参数8.4.1 基于元组的可变参数( *可变参数)8.4.2 基于字典的可变参数( **可变参数)8.5 函数中变量的作用域8.6 函数类型8.6.1 理解函数类型8.6.2 过滤函数filter()8.6.3 映射函数map()8.7 lambda()函数8.8 动动手 —— 使用更多的lambda()函数8.9 练一练第9章 类与对象9.1 面向对象9.2 定义类9.3 创建对象9.4 类的成员9.4.1 实例变量9.4.2 构造方法9.4.3 实例方法9.4.4 类变量19.5 封装9.5.1 私有变量9.5.2 私有方法9.5.3 使用属性9.6 继承性9.6.1 Python中的继承9.6.2 多继承9.6.3 重写方法9.7 多态性9.7.1 继承与多态9.7.2 鸭子类型测试与多态9.8 练一练第10章 异常处理9.8 练一练10.1 第一个异常 —— 除零异常10.2 捕获异常110.2.1 try-except语句10.2.2 多个except代码块10.2.3 多重异常捕获10.2.4 try-except语句嵌套10.3 使用finally代码块释放资源10.4 自定义异常类10.5 动动手 —— 手动引发异常10.6 练一练

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧