C#String & StringBuilder

來源:互聯網
上載者:User

標籤:stringbuilder   stringbuffer   string   

    在看J2SE的時候,再次看到了String這個字眼,其實在C#系統實踐的過程中就多次使用了:

    對於String和StringBuilder最大的區別就是可變不可變的問題,其實這個在資料類型中是存在多對對比並行存在的,就比如Char和Varchar的完美對比。

String:

    在機房收費系統又或者學生資訊管理系統中,由於整個系統相對來說就是小型化的,所以我們最多就是使用了String類型,來完成我們對於字串的定義。其實String就是一個字串常量,是不可改變的,就Java記憶體分析角度來說,就是每次只要字串的內容發生改變,就必須重新分配記憶體。假設一個有著一個10000次的一個迴圈,每次迭代都重新分配一下,這樣效能低就可想而知。

StringBuilder:

      它是在String的完善的基礎上,才被人所使用的。StringBuilder懂得了分配一個緩衝,也就是一個工作區來解決這些問題,當字串大小沒有超過容量時,不會分配新的容量,當超過時,就會自動增加容量,這樣等所有的事情全部執行完成之後,直接提交,則會提高效能。

     雖然StringBuilder對象是動態對象,但是擴充所封裝的字串的數量,再此容量不要和之前瞭解的StringBuilder的長度混淆在一起,

For Example:

    可以建立一個帶有字串“friends"(長度為7)的例子,如果我指定該對象的最大容量為25,那麼StringBuilder可以將MyStringBuilder的對象擴充到最大25的空白:

StringBuilder  MyStringBuilder=new StringBuilder(Hello,My dear Friends!", 25);
最大容量可以這樣來定義:

MyStringBuilder.Capacity =25;
在我們項目中,我們最常用的還是.Append:

StringBuilder StrBuilder=new StringBuilder();StringBuilder.Append(" ");StringBuilder.Append(" ");StringBuilder.Append(" ");StringBuilder.Append(" ");……
這樣使用的好處也是為了提高效能。

在StringBuilder中,常用的幾種方法為:

StringBuilder.Append()。將內容追加到當前StringBuilder字串的結尾。Eg:StringBuilder MySB = new StringBuilder("您好!");    MySB.Append(" 大家好!");    Console.WriteLine(MySB); StringBuilder.AppendFormat()。用一個帶格式文本來代替字串要傳遞的符號。Eg:int MyMoney = 24;    StringBuilder MySB = new StringBuilder("欠我的錢是 ");    MySB.AppendFormat("{0:C} ", MyMoney);    Console.WriteLine(MySB); StringBuilder.Insert(int,string)。將字串和對象插入到當前StringBuilder字串的指定位置。StringBuilder.Remove(p,n)。在當前StringBuilder對象中移除指定的字元,就是說從p位置開始刪除n個字元。StringBuilder.Replace(a,b)。就是用b替換a指定字串,a和b都是字元或字串。Eg: string a="aaa aaa aaa";    string b=a.Replace(‘a’,‘w’);    結果輸出“www www www”。

    除了這兩種之外,還有一種就是StringBuffer,和StringBuilder相比來說,最大的優勢就是適用於多線程的情況下,總結一下三者的使用方式:

1)如果操作量少  ---String

2)單線程操作字串緩衝區下操作大量資料   ---StringBuilder

3)多線程操作字串緩衝區下操作大量資料   ---StringBuffer


C#String & StringBuilder

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.