1. 程式人生 > >NET基礎知識

NET基礎知識

開始 一個 right one left array rime 想想 cde

1.string和StringBuilder的區別

  string:每次字符串變量的內容發生了改變時,都必須重新分配內存。你想想,如果創建一個叠代100000次的循環,每次叠代都將一個字符連接到字符串,這樣內存中就會有100000個字符串,每個字符串僅僅與前一個字符串相伴只是有一個字符不同,性能影響是很大的。

  StringBuilder:通過分配一個緩存,就是一個工作區來解決這些問題,在工作區中隊字符串應用StringBuilder類的相關方法。包括添加,刪除,移除,插入和替換字符等等。執行完之後,將調用ToString方法把工作區中的內容轉換為一個字符串,方便賦給一個字符串變量。這樣StringBuilder會提升一些性能。

企業項目中用的比較多,經常SQL連接。StringBuilder的對象是動態的,可以改變字符串的內容。StringBuilder修改字符串內容。
//用一個帶格式文本來代替字符串要傳遞的符號。
StringBuilder.AppendFormat()。
int MyMoney = 24;
StringBuilder MySB = new StringBuilder("欠我的錢是 ");
MySB.AppendFormat("{0:C} ", MyMoney);
Console.WriteLine(MySB); 

//將字符串和對象插入到當前StringBuilder字符串的指定位置。
StringBuilder.Insert(int
,string)。 //在當前StringBuilder對象中移除指定的字符,就是說從p位置開始刪除n個字符。 StringBuilder.Remove(p,n)。 //就是用b替換a指定字符串,a和b都是字符或字符串。 StringBuilder.Replace(a,b)。 string a="aaa aaa aaa"; string b=a.Replace(‘a’,‘w’); //結果輸出“www www www”。

上面這幾種方法string也是用的,甚至比StringBuilder還要多一些。多出來的有如下:PadRight()/PadLeft()方法,根據指定寬度,用相應的個數給定字符天才字符中,如果未指定填充字符,則使用空白符來填充。

 string a="abcdefg";
 a=a.PadRight(a.Length+3"!");
 //結果輸出“abcdefg!!!”。

Split(char[])方法,char數組包含分隔符,可用將字符串分割為子串,這些子串將作為一個字符串數組中的元素返回。

Substring()方法,從指定的位置N開始抽取指定的長度串,如果指定為1,就抽取長度為1的子串。

ToUpper()/ToLower(),返回字符串的大小寫形式的副本。

Trim()/Trim(char[]),刪除字符串中所有的空白符,如果提供的是一個char數組,則刪除這個char數組指定的前導和結尾字符。

TrimEnd(char[])/TrimStart([]),刪除char數字指定的所有前導和末尾的字符,如果數組是null,則刪除空白符。

ToCharArray()/ToCharArray(n,1),從字符串中抽取字符,並將它放入一個Unicode字符數組中

NET基礎知識