String和StringBuilder 的使用區別

String 類有不可變性,每次執行操做時都會建立一個新的String對像,須要對該對象分配新的空間。函數

StringBuilder 解決了對字符串重複修改過程當中建立大量對象的問題。初始化一個StringBuilder後,它會自動申請一個默認的StringBuilder容量(16)ui

這個容量是由Capacity來控制的.而且容許,咱們根據須要來控制Capacity的大小,也能夠經過Length來獲取或設置StringBuilder 的長度.this

舉例: 用String類這麼寫對象

String begin_query = "select UPPER(MachineName) As MachineName, "+"LOWER(MachineOwner) As MachineOwner, Status, "+ "StartTime from NET_STRESS WHERE ";內存

String end_query = " AND StartTime > '" + startTime + "'AND StartTime < '" + endTime + "'";ci

String query = begin_query + GetWhereClause("PASSED") + end_query;字符串

用StringBuilder類這麼寫:string

StringBuilder begin_query = new StringBuilder();it

begin_query.Append("select UPPER(MachineName) As MachineName ");select

begin_query.Append("LOWER(MachineOwner) As MachineOwner, Status, ");

begin_query.Append("StartTime from NET_STRESS WHERE ");

StringBuilder end_query = new StringBuilder();

end_query.Append(" AND StartTime > '");

end_query.Append(startTime);

end_query.Append("' AND StartTime < '");

end_query.Append(endTime);

end_query.Append("'");

String query = begin_query.Append(GetWhereClause("PASSED")).Append(end_query).ToString();

    StringBuilder 類的一些屬性與方法

--------------------------------------------------------------------------------

Length 屬性並非只讀的。

StringBuilder sb=new StringBuilder("I live the language");

Console.WriteLine(sb.ToString( ));

sb.Length = 6;

//Displays "I live"

Console.WriteLine(sb.ToString( ));

Capacity 屬性

描述:當前爲實例分配的字符數量。默認容量是16,若是將一個字符串做爲參數提供給構造函數,容量以最接近 2 的冪的值。

MaxCapacity 屬性

描述:這個實例中能夠被分配的字符最大數量。

Append( ) 方法

描述:追加給定值的字符串表示。

StringBuilder sb=new StringBuilder( );

Console.WriteLine( sb.Capacity+"/t"+sb.Length );

sb.Append ( 'a' , 17 )

Console.WriteLine( sb.Capacity+"/t"+sb.Length );

16      0 <== 輸出

32      17

EnsureCapacity( Int capacity ) 方法

描述:若是當前容量小於指定容量,內存分配會增長內存空間以達到指定容量。

Replace( Char oldchar,Char newchar ) 方法

描述:用newchar替換oldchar。

Replace( String oldstring,String newstring ) 方法

描述:用newstring替換oldstring。

Replace( Char oldchar,Char newchar,Int startpos,Int count ) 方法

描述:從startpos到count-1之間用newchar替換oldchar。

Replace( String oldstring,String newstring,Int startpos,Int count )

描述:從startpos到count-1之間用newstring替換oldstring。

ToString( ) 方法

StringBuilder sb=new StringBuilder( "I live this game" );

String s1=sb.ToString( );         //Displays "I live this game"

String s2=sb.ToString(3,4);     //Displays "live"

在這裏第二個ToString( )方法調用了String類的Substring( )方法

public String ToString( int startIndex,int length )

{

return m_StringValue.Substring( startIndex,length );

}

相關文章
相關標籤/搜索