C#String & StringBuilder
來源:程序員人生 發布時間:2015-05-11 08:33:57 閱讀次數:4261次
在看J2SE的時候,再次看到了String這個字眼,其實在C#系統實踐的進程中就屢次使用了:
對String和StringBuilder最大的區分就是可變不可變的問題,其實這個在數據類型中是存在多對對照并行存在的,就比如Char和Varchar的完善對照。
String:
在機房收費系統又或學生信息管理系統中,由于全部系統相對來講就是小型化的,所以我們最多就是使用了String類型,來完成我們對字符串的定義。其實String就是1個字符串常量,是不可改變的,就Java內存分析角度來講,就是每次只要字符串的內容產生改變,就必須重新分配內存。假定1個有著1個10000次的1個循環,每次迭代都重新分配1下,這樣性能低便可想而知。
StringBuilder:
它是在String的完善的基礎上,才被人所使用的。StringBuilder曉得了分配1個緩存,也就是1個工作區來解決這些問題,當字符串大小沒有超過容量時,不會分配新的容量,當超過時,就會自動增加容量,這樣等所有的事情全部履行完成以后,直接提交,則會提高性能。
雖然StringBuilder對象是動態對象,但是擴充所封裝的字符串的數量,再此容量不要和之前了解的StringBuilder的長度混淆在1起,
For Example:
可以創建1個帶有字符串“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()。用1個帶格式文本來代替字符串要傳遞的符號。
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”。
除這兩種以外,還有1種就是StringBuffer,和StringBuilder相比來講,最大的優勢就是適用于多線程的情況下,總結1下3者的使用情況:
1)如果操作量少 ---String
2)單線程操作字符串緩沖區下操作大量數據 ---StringBuilder
3)多線程操作字符串緩沖區下操作大量數據 ---StringBuffer
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈