第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用StringBuilder替換所有出現(xiàn)的String嗎?

使用StringBuilder替換所有出現(xiàn)的String嗎?

瀟湘沐 2019-10-19 14:08:17
我是否缺少某些內(nèi)容,或者StringBuilder是否缺少與普通String類相同的“用字符串B替換所有出現(xiàn)的字符串A”功能?StringBuilder的替換功能并不完全相同。有沒有什么方法可以更有效地使用普通的String類生成多個String?
查看完整描述

3 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

好了,您可以編寫一個循環(huán):


public static void replaceAll(StringBuilder builder, String from, String to)

{

    int index = builder.indexOf(from);

    while (index != -1)

    {

        builder.replace(index, index + from.length(), to);

        index += to.length(); // Move to the end of the replacement

        index = builder.indexOf(from, index);

    }

}

請注意,在某些情況下lastIndexOf,從背面使用它可能會更快。我懷疑是用短字符串替換長字符串的情況-因此,從一開始,任何替換副本的復(fù)制量都會減少。無論如何,這應(yīng)該給您一個起點。


查看完整回答
反對 回復(fù) 2019-10-19
?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

您可以使用模式 / 匹配器。從Matcher javadocs:


 Pattern p = Pattern.compile("cat");

 Matcher m = p.matcher("one cat two cats in the yard");

 StringBuffer sb = new StringBuffer();

 while (m.find()) {

     m.appendReplacement(sb, "dog");

 }

 m.appendTail(sb);

 System.out.println(sb.toString());


查看完整回答
反對 回復(fù) 2019-10-19
?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

查看String類的replaceAll方法的JavaDoc :


用給定的替換項替換該字符串中與給定的正則表達式匹配的每個子字符串。以str.replaceAll(regex,repl)形式調(diào)用此方法,其結(jié)果與表達式完全相同


java.util.regex.Pattern.compile(regex).matcher(str).replaceAll(repl)


如您所見,您可以使用Pattern和Matcher來做到這一點。


查看完整回答
反對 回復(fù) 2019-10-19
  • 3 回答
  • 0 關(guān)注
  • 1821 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號