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网络安全小组

  • 相关阅读:
    jQuery Validate 表单验证
    在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
    移动端手势库hammerJS 2.0.4官方文档翻译
    Linux下查看nginx安装目录
    Mac Mini中添加VNC访问
    CSS3属性选择通配符
    【LeetCode】9 Palindrome Number 回文数判定
    【LeetCode】8. String to Integer (atoi) 字符串转整数
    【LeetCode】7. Reverse Integer 整型数反转
    【LeetCode】6. ZigZag Conversion 锯齿形转换
  • 原文地址:https://www.cnblogs.com/secbook/p/2654925.html
Copyright © 2011-2022 走看看