亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java如何替換第一個(gè)和最后一個(gè)字符串

 更新時(shí)間:2021年08月11日 09:19:53   作者:知識追求者  
這篇文章主要介紹了Java如何替換第一個(gè)和最后一個(gè)字符串的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java替換第一個(gè)和最后一個(gè)字符串

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)的某個(gè)子串

問題現(xiàn)象:

今天在項(xiàng)目中遇到一個(gè)問題:如何替換一個(gè)String字符串中第一次出現(xiàn)的某個(gè)子串.

問題分析:

從問題可知,這個(gè)String字符串中應(yīng)該含有多個(gè)該子串,然后這些子串是錯落分布在這個(gè)String父串中的.

因此如果只是想要替換第一次出現(xiàn)的該子串的話,其實(shí)只需要調(diào)用String的replaceFirst()方法即可;

1.s.replaceFirst("正則表達(dá)式[被替換的子串]",替換后的子串);

但是呢,有一點(diǎn)需要注意的,就是這個(gè)方法的第一個(gè)參數(shù)是正則表達(dá)式,所以調(diào)用該方法的小伙伴記得先復(fù)習(xí)一下正則表達(dá)式的內(nèi)容:

這里提幾點(diǎn):

  • .匹配除換行符以外的任意字符
  • ^匹配字符串的開始
  • $匹配字符串的結(jié)束
  • *重復(fù)零次或更多次
  • +重復(fù)一次或更多次
  • ?重復(fù)零次或一次

當(dāng)然了,用到正則表達(dá)式總感覺挺麻煩的,其實(shí)這里也可以用 \ 轉(zhuǎn)義字符來轉(zhuǎn)義從而消除正則表達(dá)式的限制.

除了替換第一次出現(xiàn)的子串之外,還有一些其他的替換方法:

2.s.replace("被替換的子串",替換后的子串);

s.replace()用于替換父串中所有被匹配的子串,這個(gè)方法不需要正則表達(dá)式,是很常用的字符串替換方法

3.s.replaceAll("正則表達(dá)式[被替換的子串]",替換后的子串);

s.replaceAll()這個(gè)方法和s.replace()的作用是一樣的,區(qū)別在于:首參數(shù)是正則表達(dá)式.

解決方法

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(".#", "_");

打印結(jié)果:

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"

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中Integer兩種轉(zhuǎn)int方法比較

    Java中Integer兩種轉(zhuǎn)int方法比較

    本文主要介紹了Java Integer兩種轉(zhuǎn)int方法比較。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • Java Scoket實(shí)現(xiàn)雙向通信代碼詳解

    Java Scoket實(shí)現(xiàn)雙向通信代碼詳解

    這篇文章主要介紹了Java Scoket實(shí)現(xiàn)雙向通信代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • SpringBoot集成Elasticsearch過程實(shí)例

    SpringBoot集成Elasticsearch過程實(shí)例

    這篇文章主要介紹了SpringBoot集成Elasticsearch過程實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java后端Tomcat實(shí)現(xiàn)WebSocket實(shí)例教程

    Java后端Tomcat實(shí)現(xiàn)WebSocket實(shí)例教程

    WebSocket protocol 是HTML5一種新的協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信(full-duplex)。一開始的握手需要借助HTTP請求完成握手。本文給大家介紹Java后端Tomcat實(shí)現(xiàn)WebSocket實(shí)例教程,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • java多線程實(shí)現(xiàn)文件下載功能

    java多線程實(shí)現(xiàn)文件下載功能

    這篇文章主要介紹了java多線程實(shí)現(xiàn)文件下載功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 基于Java Callable接口實(shí)現(xiàn)線程代碼實(shí)例

    基于Java Callable接口實(shí)現(xiàn)線程代碼實(shí)例

    這篇文章主要介紹了基于Java Callable接口實(shí)現(xiàn)線程代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java實(shí)現(xiàn)讀取帶合并單元格的Excel

    java實(shí)現(xiàn)讀取帶合并單元格的Excel

    這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)讀取帶合并單元格的Excel,文中的示例代碼講解詳細(xì), 感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Spring 方法注解@Bean及配置類掃描路徑

    Spring 方法注解@Bean及配置類掃描路徑

    這篇文章主要介紹了Spring 方法注解@Bean及配置類掃描路徑,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • Java項(xiàng)目NoProviderFoundException報(bào)錯的解決方案

    Java項(xiàng)目NoProviderFoundException報(bào)錯的解決方案

    在Java開發(fā)中,jakarta.validation.NoProviderFoundException?是一個(gè)令人困惑的運(yùn)行時(shí)錯誤,常因校驗(yàn)框架依賴缺失或版本沖突導(dǎo)致,本文給大家介紹了Java項(xiàng)目NoProviderFoundException報(bào)錯的解決方案,需要的朋友可以參考下
    2025-06-06
  • SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法

    SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法

    Redisson是一個(gè)用于Java的Redis客戶端,它提供了在分布式環(huán)境下操作Redis數(shù)據(jù)庫的簡單、高效的方式,本文主要介紹了SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評論