日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

不满足作对(JZ2 替换空格(Java))

發(fā)布時(shí)間:2023/12/20 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不满足作对(JZ2 替换空格(Java)) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

菜雞程序猿第一次寫(xiě)博客
秋招結(jié)束后,處處不如意,為了更好的學(xué)習(xí)并記錄,遂開(kāi)始試著寫(xiě)寫(xiě)博客
第一篇博客,獻(xiàn)給劍指offer

關(guān)于劍指offer題2(空格替換)的一些自己的看法
題目描述:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的每個(gè)空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過(guò)替換之后的字符串為We%20Are%20Happy。

因?yàn)楸救藢W(xué)的是Java,一看到題目,立馬想到String.replace()。
第一次提交的代碼:

public String replaceSpace(StringBuffer str) {return str.toString().replaceAll(" ", "%20");}

AC了,時(shí)間12ms,空間9800k

由于以前在LeetCode中做過(guò)題,感覺(jué)12ms時(shí)間好長(zhǎng)啊,想要優(yōu)化,心想自己實(shí)現(xiàn)會(huì)不會(huì)效果好點(diǎn),遂自己實(shí)現(xiàn)并提交
第二次提交的代碼:

public String replaceSpace2(StringBuffer str) {StringBuilder res = new StringBuilder();for(int i = 0; i < str.length(); i++) {char c = str.charAt(i);if(c!=' ') {res.append(c);}else {res.append("%20");}}return res.toString();}

啊哈~同樣AC了,但是時(shí)間13ms,空間9824k,時(shí)間空間全大了,what 回事?
本著刨(jia)根(zhuang)問(wèn)(xue)底(xi)的心態(tài),alt+鼠標(biāo)左鍵,源碼如下:

public String replaceAll(String regex, String replacement) {return Pattern.compile(regex).matcher(this).replaceAll(replacement);}

這。。。這是啥?繼續(xù)刨(jia)根(zhuang)問(wèn)(xue)底(xi)。。。目測(cè)是通過(guò)正則表達(dá)式來(lái)進(jìn)行替換的。。。。然后怎么個(gè)流程。。。。完全繞萌幣了。。。繞了半天找到了替換方法,此處不粘代碼了,發(fā)現(xiàn)和我代碼不同的地方主要是在charAt處,官方應(yīng)用的String對(duì)象,我用的是StringBuilder

是不是有什么關(guān)系?
因此第3次自己實(shí)現(xiàn),代碼如下:

public String replaceSpace3(StringBuffer str) {String s = str.toString();StringBuilder res = new StringBuilder();for(int i = 0; i < s.length(); i++) {char c = s.charAt(i);if(c != ' ') {res.append(c);}else {res.append("%20");}}return res.toString();}

提交,AC,時(shí)間12ms,空間9706k,雖然時(shí)間沒(méi)有優(yōu)化,但是空間略微少了點(diǎn)。

思考:執(zhí)行效率不是StringBuilder>StringBuffer>String 嗎?為啥這道題改成了String反而更快了呢?
分析:
1)通過(guò)對(duì)比,發(fā)現(xiàn)主要區(qū)別在charAt()方法上,StringBuffer在調(diào)用的是父類AbstractStringBuilder的方法,該方法在會(huì)先檢查下標(biāo)是否越界,然后在進(jìn)行返回


2)從線程安全方面看,StringBuffer是線程安全的,對(duì)應(yīng)方法會(huì)進(jìn)行加鎖,StringBuilder和String是非線程安全的,可能這也有關(guān)。

就這樣吧,也不知道分析的對(duì)不對(duì),也不會(huì)進(jìn)一步優(yōu)化!

菜雞程序猿就是我,我就是菜雞程序猿!

總結(jié)

以上是生活随笔為你收集整理的不满足作对(JZ2 替换空格(Java))的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高清国产在线观看 | 91在线视频免费 | 岛国av免费 | 日本高清视频www夜色资源 | 野外做受又硬又粗又大视频√ | 日韩黄色网址 | 亚日韩欧美 | 成人毛片100免费观看 | 黑名单上的人全集免费观看 | 久久久久久国产精品一区 | 亚洲自拍偷拍精品 | 91国偷自产一区二区三区女王 | 欧美三级午夜理伦三级中视频 | 欧美变态另类刺激 | 91麻豆精品国产午夜天堂 | 最新日韩中文字幕 | 天堂网wwww| 91大神精品 | 男生裸体视频网站 | 特大黑人巨交吊性xxxx视频 | 中文字幕在线2018 | 国产51精品| 色丁香六月 | 超碰在线97观看 | 成人免费观看cn | 一级黄色大毛片 | 色哟哟入口国产精品 | 国产免费视频 | 亚洲av成人无码网天堂 | 亚洲免费在线观看 | 欧美日韩在线精品 | www.狠狠插 | 中文字幕日韩精品在线 | 欧美日韩亚洲一区二区 | 97成人人妻一区二区三区 | 西西人体大胆4444ww张筱雨 | 96在线视频 | 99色亚洲| 国产精品久久久久久久久 | 黄色国产在线观看 | 国产欧美在线精品日韩 | 国产经典三级在线 | 黄色福利网 | 日日摸夜夜添夜夜 | 999zyz玖玖资源站永久 | 日韩欧美性视频 | 男人av影院 | 中文字幕35页| 99热这里都是精品 | 日韩欧美麻豆 | 国产露脸150部国语对白 | 成人动漫av | 夜夜嗨av一区二区三区 | 欧洲精品久久久 | 日本中文字幕在线观看视频 | 在线观看免费av网站 | 久久成人在线视频 | 欧美激情黄色 | 国产香蕉精品视频 | 日韩有码在线视频 | 另类小说色| 99国产视频 | 伊人蕉久 | 久久精品电影网 | a三级黄色片 | 久久久女人 | 色一五月 | 国产精品人人妻人人爽 | 自宅警备员在线观看 | 欧美亚洲视频在线观看 | 欧美成人女星 | 你懂的网站在线 | 中文字幕精品无码一区二区 | 久久午夜一区 | 国产资源久久 | 国产片一区二区三区 | 欧美亚洲在线观看 | 国产高清视频一区二区 | 少妇高潮惨叫久久久久 | 国产无码精品久久久 | 四色在线 | 黄色激情在线 | 激情四射综合网 | 日韩色影院 | 日本老太婆做爰视频 | 99久久久无码国产精品性黑人 | 偷拍亚洲精品 | 亚洲香蕉 | 久久99精品久久久久久三级 | 欧美成人高清 | 日本免费一区二区三区四区 | 色爽影院| 九九热视频在线免费观看 | 操操操操网 | 久久av片| 午夜福利理论片在线观看 | 女人18毛片一区二区三区 | 小泽玛利亚一区二区三区在线观看 | 国产精品久久..4399 |