Java中replace與replaceAll的區(qū)別與測(cè)試
一、簡(jiǎn)述
【replace】的參數(shù)是 char 和 CharSequence,既支持字符的替換,也支持字符串的替換(CharSequence即字符串序列的意思,也就是字符串)。
【replaceAll】的參數(shù)是 regex,即基于規(guī)則表達(dá)式的替換。比如:可以通過(guò)replaceAll("\\d", "*")把一個(gè)字符串所有的數(shù)字字符都換成星號(hào)。
二、異同
1??相同點(diǎn):都是全部替換,即把源字符串中的某一字符或字符串全部換成指定的字符或字符串。
2??不同點(diǎn):replaceAll 支持正則表達(dá)式,因此會(huì)對(duì)參數(shù)進(jìn)行解析(兩個(gè)參數(shù)均是)。replace 不支持正則,replace("\\d","*")就是替換"\\d"的字符串,而不會(huì)解析為正則。
3??另外還有一個(gè)不同點(diǎn):\在 Java 中是一個(gè)轉(zhuǎn)義字符,所以需要用兩個(gè)代表一個(gè)。例如System.out.println( "\\" );只打印出一個(gè)\。但是\也是正則表達(dá)式中的轉(zhuǎn)義字符,需要用兩個(gè)代表一個(gè)。所以\\\\被 Java 轉(zhuǎn)換成\\,\\又被正則表達(dá)式轉(zhuǎn)換成\,因此用 replaceAll 替換\為\\,就要用replaceAll("\\\\","\\\\\\\\"),而 replace 則為replace("\\","\\\\")。
4??如果只想替換第一次出現(xiàn)的,可以使用 replaceFirst(),這個(gè)方法也是基于正則表達(dá)式的替換,但與 replaceAll() 不同的是,只替換第一次出現(xiàn)的字符串。
三、測(cè)試
public class ReplaceDemo {
public static void main(String[] args) {
String str = "a1b2c3d";
System.out.println(str.replace("a", "123"));
System.out.println(str.replace("\\d", "888"));
System.out.println(str.replaceAll("\\d", "888"));
System.out.println(str.replaceFirst("\\d", "888"));
}
}
結(jié)果:
1231b2c3d
a1b2c3d
a888b888c888d
a888b2c3d
總結(jié)
到此這篇關(guān)于Java中replace與replaceAll的區(qū)別與測(cè)試的文章就介紹到這了,更多相關(guān)Java replace與replaceAll區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- javascript中使用replaceAll()函數(shù)實(shí)現(xiàn)字符替換的方法
- Javascript中正則表達(dá)式的全局匹配模式分析
- Javascript中使用exec進(jìn)行正則表達(dá)式全局匹配時(shí)的注意事項(xiàng)
- JavaScript實(shí)現(xiàn)的字符串replaceAll函數(shù)代碼分享
- javascript實(shí)現(xiàn)全局匹配并替換的方法
- java中replaceAll替換圓括號(hào)實(shí)例代碼
- java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說(shuō)明
- Java replaceAll()方法報(bào)錯(cuò)Illegal group reference的解決辦法
- String.replaceAll方法詳析(正則妙用)
- 淺談Java中replace與replaceAll區(qū)別
- Java中replace、replaceAll和replaceFirst函數(shù)的用法小結(jié)
- 淺談java中replace()和replaceAll()的區(qū)別
- jQuery中replaceAll()方法用法實(shí)例
- js使用正則實(shí)現(xiàn)ReplaceAll全部替換的方法
- js字符串替換所有的指定字符或文字(推薦replaceAll方法)
- JS中實(shí)現(xiàn)replaceAll的方法(實(shí)例代碼)
- js replace 與replaceall實(shí)例用法詳解
- Flex 字符串ReplaceAll使用說(shuō)明
- JavaScript中使用replace結(jié)合正則實(shí)現(xiàn)replaceAll的效果
相關(guān)文章
java源碼解析之String類的compareTo(String otherString)方法
這篇文章主要給大家介紹了關(guān)于java源碼解析之String類的compareTo(String otherString)方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Java?獲取Zookeeper節(jié)點(diǎn)下所有數(shù)據(jù)詳細(xì)步驟
本文介紹了如何使用Java獲取ZooKeeper節(jié)點(diǎn)下所有數(shù)據(jù),實(shí)際應(yīng)用示例中,我們演示了如何從ZooKeeper節(jié)點(diǎn)下獲取配置信息并輸出到控制臺(tái),ZooKeeper是一個(gè)開源的分布式協(xié)調(diào)服務(wù),適用于分布式系統(tǒng)中的數(shù)據(jù)同步、配置管理、命名服務(wù)等功能,感興趣的朋友一起看看吧2024-11-11
詳解Java8?CompletableFuture的并行處理用法
Java8中有一個(gè)工具非常有用,那就是CompletableFuture,本章主要講解CompletableFuture的并行處理用法,感興趣的小伙伴可以了解一下2022-04-04
maven項(xiàng)目在實(shí)踐中的構(gòu)建管理之路的方法
這篇文章主要介紹了maven項(xiàng)目在實(shí)踐中的構(gòu)建管理之路的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
SpringBoot異步調(diào)用方法實(shí)現(xiàn)場(chǎng)景代碼實(shí)例
這篇文章主要介紹了SpringBoot異步調(diào)用方法實(shí)現(xiàn)場(chǎng)景代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

