1. string的缺点是每次字符串变量的内容发生了改变时,都必须重新分配内存。你想想,如果创建一个迭代100000次的循环,每次迭代都将一个字符连接到字符串,这样内存中就会有100000个字符串,每个字符串仅仅与前一个字符串相伴只是有一个字符不同,性能影响是很大的。StringBuilder通过分配一个缓存,就是一个工作区来解决这些问题,在工作区中队字符串应用StringBuilder类的相关方法。包括添加,删除,移除,插入和替换字符等等。执行完之后,将调用ToString方法把工作区中的内容转换为一个字符串,方便赋给一个字符串变量。这样StringBuilder会提升一些性能。

  2. 企业项目中用的比较多,经常SQL连接。StringBuilder的对象是动态的,可以改变字符串的内容。StringBuilder修改字符串内容的方法。

    1:StringBuilder.Append()。将内容追加到当前StringBuilder字符串的结尾。

    StringBuilder MySB = new StringBuilder("您好!");    MySB.Append(" 大家好!");    Console.WriteLine(MySB);

    2:StringBuilder.AppendFormat()。用一个带格式文本来代替字符串要传递的符号。

    int MyMoney = 24;    StringBuilder MySB = new StringBuilder("欠我的钱是 ");    MySB.AppendFormat("{0:C} ", MyMoney);    Console.WriteLine(MySB);

    3:StringBuilder.Insert(int,string)。将字符串和对象插入到当前StringBuilder字符串的指定位置。

    4:StringBuilder.Remove(p,n)。在当前StringBuilder对象中移除指定的字符,就是说从p位置开始删除n个字符。

    5:StringBuilder.Replace(a,b)。就是用b替换a指定字符串,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字符数组中

C#string与stringBuilder的区别的更多相关文章

  1. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  2. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  3. string与stringbuilder的区别

    1.分析string与stringbuilder的区别,我们先来看下面一段代码 首先我们使用string进行字符串的拼接 class Program { static void Main(string ...

  4. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

  5. Question 20171115 String&&StringBuffer&&StringBuilder的区别与联系?

    Question 20171114 String&&StringBuffer&&StringBuilder的区别和联系 创建成功的String对象,其长度是固定的,内容 ...

  6. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  7. 深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)

    String.StringBuffer.StringBuilder都是JAVA中常用的字符串操作类,对于他们的区别大家也都能耳熟能详,但底层到底是怎样实现的呢?今天就再深入分析下这三种字符串操作的区别 ...

  8. java中String与StringBuilder的区别

    相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE ...

  9. Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用

    Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...

  10. 在JAVA中,String,Stringbuffer,StringBuilder 的区别

    首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String  不是线程安全的,这意味着在不同线程共享一个String ...

随机推荐

  1. Book Review 《构建之法》-2

    -敏捷流程包括了几大原则:Backlog.burn-down.Sprint.Scrum. 敏捷开发注重个人之间的交流,提倡尽早的交付有价值的软件满足顾客的需求, 在开发过程中不断与客户进行交互,变化. ...

  2. Beta版本冲刺(五)

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  3. Alpha冲刺第4天

    Alpha第四天 1.团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504 陈顺兴 031602505 张胜男 031602540 廖钰萍 031602323 雷光游 03160 ...

  4. spirngcloud文件

    https://blog.csdn.net/liumiaocn/article/details/54309866

  5. DELPHI动态创建窗体

    //第一种方式 procedure TForm1.btn1Click(Sender: TObject); begin With TForm2.Create(Application) do Try Sh ...

  6. List元素删除不会导致越界但有问题的写法

    今天在论坛里看到一段请教list删除的问题,下面先看代码: public static void main(String[] args) { List<Integer> list = ne ...

  7. ubuntu 16.04 kdump 使用

    1.安装linux-crashdump及kdump sudo apt-get install linux-crashdump sudo apt-get install kexec-tool 2.重启电 ...

  8. LCM Cardinality UVA - 10892(算术基本定理)

    这题就是 LightOJ - 1236 解析去看这个把https://www.cnblogs.com/WTSRUVF/p/9185140.html 贴代码了: #include <iostrea ...

  9. BZOJ2001 [Hnoi2010]City 城市建设 CDQ分治

    2001: [Hnoi2010]City 城市建设 Time Limit: 20 Sec  Memory Limit: 162 MB Description PS国是一个拥有诸多城市的大国,国王Lou ...

  10. Hello 2018 A,B,C,D

    A. Modular Exponentiation time limit per test 1 second memory limit per test 256 megabytes input sta ...