String.replace()

Java API
String replace(char oldChar, char newChar)
Returns a new string resulting from replacing all occurrences ofoldCharin this string withnewChar.

source code

public String replace(char oldChar, char newChar) {
if (oldChar != newChar) {
int len = count;
int i = -1;
char[] val = value; /* avoid getfield opcode */
int off = offset;  /* avoid getfield opcode */
while (++i < len) {
if (val[off + i] == oldChar) {
break;
}
}
if (i < len) {
char buf[] = new char[len];
for (int j = 0 ; j < i ; j++) {
buf[j] = val[off+j];
}
//為什么不一開(kāi)始用這個(gè)循環(huán)?
while (i < len) {
char c = val[off + i];
buf[i] = (c == oldChar) ? newChar : c;
i++;
}
return new String(0, len, buf);
}
}
return this;
}

因?yàn)樾枰袻inux路徑分隔符轉(zhuǎn)化為Windows下的,就先自己寫(xiě)了個(gè),還是蠻有差距的。
這個(gè)的思想是先把第一次出現(xiàn)oldChar之前的字符復(fù)制過(guò)去,再遍歷接下來(lái)的,這樣做比只用第二個(gè)while的好處我只想到一點(diǎn),就是在沒(méi)有匹配到oldChar時(shí),省去了復(fù)制這一步。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,937評(píng)論 18 139
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,771評(píng)論 0 33
  • java中String的常用方法 1、length()字符串的長(zhǎng)度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,104評(píng)論 0 10
  • Tip:筆者馬上畢業(yè)了,準(zhǔn)備開(kāi)始 Java 的進(jìn)階學(xué)習(xí)計(jì)劃。于是打算先從 String 類(lèi)的源碼分析入手,作為后面...
    石先閱讀 12,046評(píng)論 16 58
  • 初 其二 其三
    Joana蕭閱讀 287評(píng)論 0 1