StringBuilder的實現與技巧

2021-09-08 09:21:10 字數 877 閱讀 1641

通過上面的**,我們可以看出如果stringbuilder 中的字元長度小於length的值,則stringbuilder 將會用空格硬填充stringbuilder ,以滿足符合長度的設定..如果stringbuilder 中的字元長度大於length的值,則stringbuilder 將會擷取從第一位開始的length個字元..而忽略超出的部分..

再來看看最重要的部分carpacity的用法:

上面的**輸出的結果:12

3456

7從上面的**和結果可以說明stringbuilder中容量capacity是如何增加的:建立乙個stringbuilder之後,預設的capacity初始化為16,接著我們新增17個字元,以方便看到capacity的擴充後的值..大家在修改capacity的時候,一定要注意21行的注釋,一定要確保capacity >= length,否則會引發argumentoutofrangeexception異常...看完結果,就可以推斷出capacity的公式:

if ( capacity < length && capacity > 0 )

ok..看到公式就明白了..stringbuilder是以當前的capacity*2來擴充的..所以,在使用stringbuilder需要特別注意,尤其是要拼接或追加n多字元的時候,要注意技巧的使用,可以適當的,有預見性的設定capacity的值,避免造成過大記憶體的浪費,節約無謂的記憶體空間..例如,下列**就可以根據情況自動的擴充套件,而避免了較大的記憶體浪費.

需要特別說明的一點是,自動增加的容量,一定要根據實際預見的情況而改變,否則不但起不到優化的作用,反而會影響到程式的效能..

另外,如果有時間的話,可以測試一下下面的**,用string和stringbuilder拼接字串的區別..你會嚇到的!!

StringBuilder的常見用法

stringbuilder的常見用法。1 初始化乙個stringbuilder。system.text.stringbuilder sb new system.text.stringbuilder 或者 stringbuilder sb new stringbuilder 3 刪除sb裡面的已有的內...

StringBuilder的基本用法

1.構造stringbuiler物件 1.stringbuiler using system using system.collections using system.linq using system.text public class test 2.基本使用方式 stringbuilder的使...

StringBuilder的常用方法

在程式開發過程中,我們常常碰到字串連線的情況,方便和直接的方式是通過 符號來實現,但是這種方式達到目的的效率比較低,且每執行一次都會建立乙個string物件,即耗時,又浪費空間。使用stringbuilder類就可以避免這種問題的發生,下面就stringbuilder的使用做個簡要的總結 一 建立s...