日常技术分享 : 一定要注意replcaceAll方法,有时候会如你所不愿!
點擊上方藍色關注我們!
今天,踩過了一個雷,特此整理了一下,以防大家也被中招!
事情是這樣的,在做一個項目時,需要用到String類的replcaceAll方法,可以這么說,該方法就是替換字符串的;比如這樣我們需要將“你是誰?”中的誰替換成“我是誰?”,代碼就是這樣:"你是誰?".replaceAll("你", "我");
在有些時候,也可以用來刪除某個字符串中特定的字符,例如:我們需要將“小白兔,白又白”的“白又白”刪除掉,輸出“小白兔”,那么代碼就是這樣:"小白兔,白又白".replaceAll(",白又白", "");很簡單,就是將你不想要的字符串用空格代替即可。
一切看似沒有任何問題,但最后還是出問題了!比如我寫了這樣的代碼:"$是誰?".replaceAll("$", "¥");根據上面的解釋,相信大家也知道這行代碼的意思了,即將$替換成¥,但事實卻不如你所愿,輸出的結果是:“$是誰?¥”,先不要管為什么是這樣的結果,只需要知道不對就行。
問題就出在了replcaceAll身上,replcaceAll方法確實需要兩個String類型的字符串,也確實可以實現字符串的替換,但是,需要注意的是,第一個參數應該是正則表達式,符合正則表達式的字符串才會被替換,我們輸入的如果是“白又白”,可以進行全面匹配,故正常替換,但是“$”符號就不一樣了,它是正則表達式結束的符號,也就是說執行完了relpaceAll方法后,在字符串的結尾地方又加上了我們后面傳入的“¥”,所以結果就成了這樣的。
解決方法也很簡單,將replcaceAll換成replace就可以啦。
支持作者
贊賞就不用啦,生活都不易,右下角的“在看/贊”點一下,如果感覺文章不錯,記得分享到朋友圈讓更多人知道!
Spring基礎
2020-08-29
推薦使用String直接量賦值
2020-08-28
不要主動調用System.gc
2020-08-27
package-info這個類還是第一次見
2020-08-26
推薦覆寫toString方法
2020-08-25
點分享
點點贊
點在看
總結
以上是生活随笔為你收集整理的日常技术分享 : 一定要注意replcaceAll方法,有时候会如你所不愿!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: airpods pro充电灯不亮怎么回事
- 下一篇: 19级:班级日常分享 | 一天一瞬间