zoukankan      html  css  js  c++  java
  • C#中StringBuilder和String的区别

    1,String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。

    2,StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16),这个容量是由Capacity来控制的.并且允许,我们根据需要来控制Capacity的大小,也可以通过Length来获取或设置StringBuilder 的长度.

    ====================================================================================举例: 用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 + "'";

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

    用StringBuilder类这么写:

    StringBuilder begin_query = new StringBuilder();

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

    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 );

    }

     

     

     

             来源于:www.hackbadboy.com  BadBoy技术网 BadBoy网络安全小组

  • 相关阅读:
    判断无向图G是否连通
    图的深度优先搜索与广度优先搜索
    整数变换问题
    按层次遍历二叉树
    交叉链表
    二元查找树转换成一个排序的双向链表
    简单计算器的实现
    二叉树宽度的计算
    BMP文件的读取与显示
    约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/secbook/p/2654925.html
Copyright © 2011-2022 走看看