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 (dsWith("\"")) {
ret = replaceLast(ret, "\"", "");
java replace方法System.out.println("去除后引号:" + ret);
}
JSONObject result = JSONObject.parseObject(ret);
System.out.println(result);
}
private static String replaceFirst(String ret, String strToReplace, String replaceWithThis) {
placeFirst(strToReplace, replaceWithThis);
}
public static String replaceLast(String text, String strToReplace, String replaceWithThis) {
placeFirst("(?s)" + strToReplace + "(?!.*?" + strToReplace + ")", replaceWithThis);
}
}
2、控制台
java 只替换String字符串中第⼀次出现的某个⼦串
问题现象:
今天在项⽬中遇到⼀个问题:如何替换⼀个String字符串中第⼀次出现的某个⼦串.
问题分析:
从问题可知,这个String字符串中应该含有多个该⼦串,然后这些⼦串是错落分布在这个String⽗串中的.
因此如果只是想要替换第⼀次出现的该⼦串的话,其实只需要调⽤String的replaceFirst()⽅法即可;
placeFirst("正则表达式[被替换的⼦串]",替换后的⼦串);
但是呢,有⼀点需要注意的,就是这个⽅法的第⼀个参数是正则表达式,所以调⽤该⽅法的⼩伙伴记得先复习⼀下正则表达式的内容:
这⾥提⼏点:
.匹配除换⾏符以外的任意字符
^匹配字符串的开始
$匹配字符串的结束
*重复零次或更多次
+重复⼀次或更多次
重复零次或⼀次
当然了,⽤到正则表达式总感觉挺⿇烦的,其实这⾥也可以⽤ \ 转义字符来转义从⽽消除正则表达式的限制.除了替换第⼀次出现的⼦串之外,还有⼀些其他的替换⽅法:
place("被替换的⼦串",替换后的⼦串);
解决⽅法
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"
s1_2="#y_test*#txt"
s2="#y*#test*#txt"
s2_2="#y*#test*#txt"
s3="#y_test_txt"
s3_2="#y_test_txt"
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论