Java如何替换第一个和最后一个字符串
Java替换第一个和最后一个字符串
1、测试类
package com.jeff.json; import com.alibaba.fastjson.JSONObject; public class JsonDemo1 { public static void main(String[] args) {String ret = "\"{\"success\":true,\"msg\":\"success\",\"data\":{}}\""; System.out.println(ret); if (ret.startsWith("\"")) {ret = replaceFirst(ret, "\"", ""); System.out.println("去除前引号:" + ret); }if (ret.endsWith("\"")) {ret = replaceLast(ret, "\"", ""); System.out.println("去除后引号:" + ret); }JSONObject result = JSONObject.parseObject(ret); System.out.println(result); } private static String replaceFirst(String ret, String strToReplace, String replaceWithThis) {return ret.replaceFirst(strToReplace, replaceWithThis); } public static String replaceLast(String text, String strToReplace, String replaceWithThis) {return text.replaceFirst("(?s)" + strToReplace + "(?!.*?" + strToReplace + ")", replaceWithThis); }}
2、控制台
文章图片
java 只替换String字符串中第一次出现的某个子串 问题现象:
今天在项目中遇到一个问题:如何替换一个String字符串中第一次出现的某个子串.
问题分析:
从问题可知,这个String字符串中应该含有多个该子串,然后这些子串是错落分布在这个String父串中的.
因此如果只是想要替换第一次出现的该子串的话,其实只需要调用String的replaceFirst()方法即可;
1.s.replaceFirst("正则表达式[被替换的子串]",替换后的子串); 但是呢,有一点需要注意的,就是这个方法的第一个参数是正则表达式,所以调用该方法的小伙伴记得先复习一下正则表达式的内容:
这里提几点:
- .匹配除换行符以外的任意字符
- ^匹配字符串的开始
- $匹配字符串的结束
- *重复零次或更多次
- +重复一次或更多次
- ?重复零次或一次
除了替换第一次出现的子串之外,还有一些其他的替换方法:
2.s.replace("被替换的子串",替换后的子串); s.replace()用于替换父串中所有被匹配的子串,这个方法不需要正则表达式,是很常用的字符串替换方法
3.s.replaceAll("正则表达式[被替换的子串]",替换后的子串); s.replaceAll()这个方法和s.replace()的作用是一样的,区别在于:首参数是正则表达式.
解决方法
String s = "#y*#test*#txt"; String s1 = s.replaceFirst("\\*#", "_"); String s1_2 = s.replaceFirst(".#", "_"); String s2 = s.replace("\\*#", "_"); String s2_2 = s.replace(".#", "_"); String s3 = s.replaceAll("\\*#", "_"); String s3_2 = s.replaceAll(".#", "_");
打印结果:
s1="#y_test*#txt"【Java如何替换第一个和最后一个字符串】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
s1_2="#y_test*#txt"
s2="#y*#test*#txt"
s2_2="#y*#test*#txt"
s3="#y_test_txt"
s3_2="#y_test_txt"
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树