C# StringBuilder

来源:互联网 发布:捷豹车钥匙数据 编辑:程序博客网 时间:2024/06/07 04:52

在开发过程中,经常会碰到几个字符串相加,一般为了懒省事,就用“+”来实现,特别是一个循环中很多字符串需要连接,这会导致内存中不停的创建新的字符串对象,并对新对象重新分配空间,在unity中会产生大量GC,所以为了避免出现这种问题,用System.Text.StringBuilder类,StringBuilder会在实例的时候分配大一点的内存空间,如果在赋值过程中,超过原来分配的内存空间,这时会重新分配一个新的比原来还要大的内存空间。

用法如下:

1,StringBuiler.Append : 将信息添加到StringBuilder结尾的地方

StringBuilder sb = new StringBuilder("Hello World!");        sb.Append("How are you?");        Debug.Log(sb);
结果:Hello World!How are you?

2,StringBuilder.AppendFormat:用带格式文本替换字符串中传递的格式说明符


StringBuilder sb = new StringBuilder("I hava");        sb.AppendFormat(" {0} apples and {1} bananas.",2,5);        Debug.Log(sb);
结果:I hava 2 apples and 5 bananas.

3,StringBuilder.Remove:将StringBuilder中移除指定数量的字符

StringBuilder sb = new StringBuilder("Hello world!");        sb.Remove(5,7);        Debug.Log(sb);
结果:Hello

4,StringBuilder.Insert:在指定位置插入字符串

tringBuilder sb = new StringBuilder("Hello world!");        sb.Insert(6,7);        Debug.Log(sb);
结果:Hello 7world!
5,StringBuilder.Replace:替换

StringBuilder sb = new StringBuilder("Hello world!");        sb.Replace("!","?");        Debug.Log(sb);
结果:Hello world?

6,StringBuilder 转换为String

StringBuilder sb = new StringBuilder("Hello world!");string str = sb.ToString();




0 0