国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java字符串的替換replace、replaceAll、replaceFirst的區別詳解

2019-11-06 08:25:37
字體:
來源:轉載
供稿:網友
摘要: String類的replace、replaceAll、replaceFirst的區別詳解;涉及到正則表達式。

如果不是剛剛復習了下正則表達式,我可能也不會注意到,原來String的replaceAll跟replaceFirst用到了正則表達式!

不多解釋,看代碼:

String s = "my.test.txt";System.out.PRintln(s.replace(".", "#"));System.out.println(s.replaceAll(".", "#"));System.out.println(s.replaceFirst(".", "#"));

運行結果:

my#test#txt############y.test.txt

是不是感覺很神奇?

其實懂正則表達式的應該已經發現了,是的,“.”是正則表達式的元字符,匹配除換行符以外的任意字符,所以replaceAll、replaceFirst才出現了這樣的結果。

而replace沒有用到正則表達式,但會把所有“.”替換掉,很多人可能會誤解replace是替換單個,而replaceAll是替換全部,其實這是錯的(我以前也是這么想的- -)。replace只是沒有用到正則表達式,但會替換所有匹配的字符串。

到這里一些不懂正則表達式的小伙伴可能就要喊坑爹了,“那我不想用正則表達式去替換第一個字符串腫么辦?”其實也很簡單,只要將元字符串轉義就行了。

s.replaceFirst("//.", "#")

運行結果:

my#test.txt

這里給個會被正則表達式識別的字符列表:

.匹配除換行符以外的任意字符

^匹配字符串的開始

$匹配字符串的結束

*重復零次或更多次

+重復一次或更多次

?重復零次或一次

當然,正則可遠不止這么點,個人建議花點時間去學習一下比較好~

補充:String的split也是用到了正則表達式,使用的時候注意點哦!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六盘水市| 古蔺县| 崇阳县| 建始县| 惠州市| 万安县| 泰兴市| 交口县| 泰和县| 峡江县| 都昌县| 荣成市| 郑州市| 禹城市| 密云县| 洱源县| 桃源县| 林口县| 图片| 泸州市| 团风县| 新民市| 泾阳县| 如皋市| 宜君县| 鄂伦春自治旗| 简阳市| 怀仁县| 湖南省| 浦县| 古浪县| 方正县| 葫芦岛市| 海安县| 津南区| 万全县| 清原| 神农架林区| 莆田市| 乌鲁木齐县| 乌鲁木齐县|