zoukankan      html  css  js  c++  java
  • C# string与StringBuilder

    System.String   引用类型

    基本成员

    Length  返回字符串的长度。

    Contains()  判断当前字符串对象是否包含一个指定的字符串对象。

    Insert()  用来接收新插入字符串数据后的当前的字符串的副本。(string的“副本“特点)

    Remove()/Replace()  接收一个带有修改(被删除或替换的字符)了的字符串的副本。

    Substring()  返回当前字符串的子字符串。

    ToCharArray()  返回一个表示当前字符串的资附数组。

    ToUpper()/ToLower()  创建当前字符串的大小写副本。

    Format()  格式化一个字符串的字面量。

    String的相等性运算(==和!=)比较的是字符串对象的值,而非比较者所引用的内存。

    拼接操作:+或静态的System.Concat()方法。

    索引器访问字符串:

    (1)String str="123456";

    for(int i=0;k<str.Length;i++)

    Console.WriteLine("Char {0} is {1}",i,str);

    (2)System.String中维护者也个System.Char类型的数组--〉

    String str="123456";

    foreach(char c in str)  Console.WriteLine(c);

    System.Text.StringBuilder:

    StringBuilder提供了对底层缓冲区的直接访问。与System.String一样,System.Text.Builder提供了用来从对象中追加,格式化,插入和删除数据的大量成员。

    区别

    String的功能已经使得他在处理字符类类型上面应经很完美了。但是在创建大量使用文本数据的程序时,它的效率就显得低了些。原因就是:当优点太优了的时候,从另一方面看时可能也会是缺点(牺牲其它方面)。--〉.NET字符串的一个非常重要的事实,字符串一旦建立,它的值就将不可再被修改。表面上我们可以给字符串变量任意赋新值,但实际上并没有修改已存在的字符串对象的底层缓存区,而是字符串变量(引用型)指向了新的字符串对象,原先的字符串最终将被垃圾回收掉。字符串的拼接,转换大小写等于此情况类似,

    StringBuilder:解决了String重复开辟空间对资源的浪费。它提供了对底层缓冲区的直接访问。长度是可变的。创建对象的同时可以指定对象所包含的字符串的初始个数,默认情况容量16。缓冲区会在初始容量不足时实时的调整大小。

    总:在许多情况下,应选择System.String表示文本,对多数应用程序来说,可以忽略返回一个修改的字符数据的副本的开销。但是,若创建的是一个文本密集的应用程序(如一个字符处理程序),使用System.Text.StringBuilder的性能要好得多。

  • 相关阅读:
    Unity3d for beginners
    iOS 8 swift 键盘不出来 ios 8 uitextfield keyboard not appearing
    关于Cookie跨域的问题
    45种Javascript技巧大全
    新.Net架构必备工具列表
    .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
    ASP.NET 大文件下载的实现思路及代码
    理解 .NET 2015
    转:我是否该放弃VB.Net?
    .net中的一般处理程序实例
  • 原文地址:https://www.cnblogs.com/skyshenwei/p/1651869.html
Copyright © 2011-2022 走看看