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字符串中第一次出現(xiàn)的某個子串
問題現(xiàn)象:
今天在項目中遇到一個問題:如何替換一個String字符串中第一次出現(xiàn)的某個子串.
問題分析:
從問題可知,這個String字符串中應該含有多個該子串,然后這些子串是錯落分布在這個String父串中的.
因此如果只是想要替換第一次出現(xiàn)的該子串的話,其實只需要調(diào)用String的replaceFirst()方法即可;
1.s.replaceFirst("正則表達式[被替換的子串]",替換后的子串);
但是呢,有一點需要注意的,就是這個方法的第一個參數(shù)是正則表達式,所以調(diào)用該方法的小伙伴記得先復習一下正則表達式的內(nèi)容:
這里提幾點:
- .匹配除換行符以外的任意字符
- ^匹配字符串的開始
- $匹配字符串的結束
- *重復零次或更多次
- +重復一次或更多次
- ?重復零次或一次
當然了,用到正則表達式總感覺挺麻煩的,其實這里也可以用 \ 轉義字符來轉義從而消除正則表達式的限制.
除了替換第一次出現(xiàn)的子串之外,還有一些其他的替換方法:
2.s.replace("被替換的子串",替換后的子串);
s.replace()用于替換父串中所有被匹配的子串,這個方法不需要正則表達式,是很常用的字符串替換方法
3.s.replaceAll("正則表達式[被替換的子串]",替換后的子串);
s.replaceAll()這個方法和s.replace()的作用是一樣的,區(qū)別在于:首參數(shù)是正則表達式.
解決方法
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"
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java后端Tomcat實現(xiàn)WebSocket實例教程
WebSocket protocol 是HTML5一種新的協(xié)議。它實現(xiàn)了瀏覽器與服務器全雙工通信(full-duplex)。一開始的握手需要借助HTTP請求完成握手。本文給大家介紹Java后端Tomcat實現(xiàn)WebSocket實例教程,感興趣的朋友一起學習吧2016-05-05
基于Java Callable接口實現(xiàn)線程代碼實例
這篇文章主要介紹了基于Java Callable接口實現(xiàn)線程代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
Java項目NoProviderFoundException報錯的解決方案
在Java開發(fā)中,jakarta.validation.NoProviderFoundException?是一個令人困惑的運行時錯誤,常因校驗框架依賴缺失或版本沖突導致,本文給大家介紹了Java項目NoProviderFoundException報錯的解決方案,需要的朋友可以參考下2025-06-06
SpringBoot集成Redisson操作Redis的實現(xiàn)方法
Redisson是一個用于Java的Redis客戶端,它提供了在分布式環(huán)境下操作Redis數(shù)據(jù)庫的簡單、高效的方式,本文主要介紹了SpringBoot集成Redisson操作Redis的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2024-03-03

