高效地字串替換

2021-09-08 07:31:08 字數 854 閱讀 9403

這裡指的不是string類裡的replace方法。如果不知道被替換字串的內容,而只知道其位置和長度的話,就可以用stringbuilder輕鬆高效完成替換。

public struct replacetext

///

/// the length of text to be replaced

///

public int length

///

/// text to replace

///

public string text

}static string replace(string content, list replacements)

return sb.tostring();

}

記住要用倒序迴圈。另外也可以使用list來完成,有insertrange和removerange方法,同樣方便,可惜最後轉換成string時要多複製一次:return new string(charlist),效率大打折扣(可能差幾十倍)。

剛剛才發現,原來.net 3.5以下的stringbuilder沒有clear方法,用設屬性length = 0代替。這種方式其實不錯,有韻味,提示列表裡方法已經很多了。有乙個方法倒是可以有,以前在拼接字串,比如一段json時,還很傻的用remove方法刪掉最後的逗號,其實使用tostring方法的另乙個過載就可以,然而需要兩個引數,如果只需乙個引數就更舒服了,就像這樣:

public static string tostring(this stringbuilder builder, int length)

字串替換

描述輸入乙個字串,以回車結束 字串長度 100 該字串由若干個單詞組成,單詞之間用乙個空格隔開,所有單詞區分大小寫。現需要將其中的某個單詞替換成另乙個單詞,並輸出替換之後的字串。輸入輸入包括3行,第1行是包含多個單詞的字串 s,第2行是待替換的單詞a,長度 100 第3行是a將被替換的單詞b。長度 ...

字串替換

一 問題 函式宣告如下 char strreplace char str,char sub,char rep 其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 二 源 char strreplace char str,char sub,char rep if f...

字串替換

請你實現乙個簡單的字串替換函式。原串中需要替換的佔位符為 s 請按照引數列表的順序一一替換佔位符。若引數列表的字元數大於佔位符個數。則將剩下的引數字元新增到字串的結尾。給定乙個字串a,同時給定它的長度n及引數字元陣列arg,請返回替換後的字串。保證引數個數大於等於佔位符個數。保證原串由大小寫英文本母...