c字符串操作之StringBuilder

StringBuilder

StringBuilder简介

1.字符串的缺点

当需要对一个字符串类型的变量重复赋值时,在内存中会产生大量的垃圾数据信息。

当你重复赋值的频率很高时,执行的效率就会降低。

2.StringBulider简介

string:字符串;Builder:构建器;连起来就是:字符串构建器。

StringBuilder是一个类,StringBulider类型的变量是引用类型的。

StringBuilder类型 的 字符串变量,一直操作同一块内存空间,不会产生垃圾数据,并且他的执行效率远远高于string类型的字符串变量。

StringBulider使用方法

1.创建StringBulider类型的变量

需要注意StringBuilder依赖于System.Text命名空间。

如果没有则会错误提示:找不到类型或命名空间名称“类型/命名空间”(是否缺少 using 指令或程序集引用?),此时我们需要输入下面的代码:

Using System.Text;//引入命名空间
StringBuilder sb= new StringBuilder();//创建一个 sb 对象

2.向StringBulider中添加数据

//单个数据追加
sb.Append("123");
sb.Append("abc");
sb.Append(true);

Console.WriteLine(sb);//out:123abcTrue
//循环追加
for (int i = 0; i < 10; i++)
{
    sb.Append(i);
}
Console.WriteLine(sb);//out:0123456789

3.清空StringBulider中的数据

sb.Clear();//清空sb对象中的数据

StringBulider效率测试

1.Stopwatch类

图片[2]-c字符串操作之StringBuilder-E-元素

Stopwatch:秒表计时器,用来记录程序运行的时间。

注意:Stopwatch依赖System.Diagnostics命名空间。

using System.Diagnostics;

2.对Stopwatch的使用

Stopwatch sw = new Stopwatch();//创建对象
sw.Start();//计时器开始
sw.Stop();//计时器结束
sw.Elapsed;//开始到结束之间的时长

效率测试

分别往string和stringbuild中添加10万个数据,并且统计时长进行比较,根据软件的输出时间可以看到 运行时间的差距还是很大的。

Stopwatch stopwatch = new Stopwatch();

//string
stopwatch.Start();
string str = "";
for (int i = 0; i <= 100000; i++)
{
    str += i;
}
stopwatch.Stop();
Console.WriteLine("string类型使用时间:" + stopwatch.Elapsed);//out:string类型使用时间:00:00:23.0771544

stopwatch.Restart();//重置时间

//stringBuilder
stopwatch.Start();
StringBuilder stringbuilder = new StringBuilder();
for (int i = 0; i <= 100000; i++)
{
    stringbuilder.Append(i);
}
stopwatch.Stop();
Console.WriteLine("stringBuilder类型使用时间:" + stopwatch.Elapsed);//out:stringBuilder类型使用时间:00:00:00.0061536
© 版权声明
THE END
点赞10 分享
和此文作者聊聊 抢沙发

    暂无评论内容