ningxia899

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

string:字符串常量,长度是固定的。用String来操作字符串的时候,一旦我们字符串的值改变,就会在内存创建多一个空间来保存新的字符串。

stringBuilder:字符串变量,使用Append拼接字符串。

所以对字符串添加或删除操作比较频繁的话。那就不要用String而用StringBuilder。

这里用代码测试一下二者的效率。代码如下:

 1  {
 2                 Console.WriteLine("------------string----------------");
 3                 Stopwatch sw = new Stopwatch();
 4                 sw.Start();
 5                 string s = null;
 6                 for (int i = 0; i < 20000; i++)//执行两万次
 7                 {
 8                     s = s + i+",";
 9                 }
10                 sw.Stop();
11                 Console.WriteLine($"String执行时间:{sw.ElapsedMilliseconds}");
12             }
13             {
14                 Console.WriteLine("----------------stringBuilder-----------------");
15                 Stopwatch sw = new Stopwatch();
16                 sw.Start();
17                 StringBuilder sb = new StringBuilder();
18                 for (int i = 0; i < 20000; i++)//执行两万次
19                 {
20                     sb.Append(i + ",");
21                 }
22                 sw.Stop();
23                 Console.WriteLine($"StringBuilder执行时间:{sw.ElapsedMilliseconds}");
24             }

stringBuilder使用总结:

Append:

Append 方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。

StringBuilder sb = new StringBuilder("My String");
                sb.Append(" My World");
                Console.WriteLine(sb);

AppendFormat:

此方法将文本添加到 StringBuilder 的结尾处,而且实现了 IFormattable 接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder 的后面。

Insert :

将字符串或对象添加到当前 StringBuilder 中的指定位置。

Remove :

从当前 StringBuilder 中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。

Replace:

可以用另一个指定的字符来替换 StringBuilder 对象内的字符。

 

posted on 2018-01-20 10:23  ningxia899  阅读(137)  评论(0)    收藏  举报