博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String和StringBuilder的区别?
阅读量:6188 次
发布时间:2019-06-21

本文共 2359 字,大约阅读时间需要 7 分钟。

1、String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。

因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。

2、而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。

当然,一般情况下你是觉察不出这二者效率的差异的,但如果你要对某个字符串进行大量的添加操作,那么用StringBuilder类所耗费的时间和String类简直不是一个数量级的

一下测试代码:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Text;namespace HandlerHelper.xiti{    public partial class StringBuilderString : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            divshow.InnerHtml = getHtml();        }        public string getHtml()        {            string html="";            DateTime startTime;            DateTime endTime;            StringBuilder strBuilder = new StringBuilder();            String str = String.Empty;            html += "
    "; startTime = DateTime.Now; html += "
  • string:
  • "; html += "
  • 开始时间:" + startTime.ToString() + "
  • "; for (int i = 0; i < 9999; i++) { str += i.ToString(); } endTime = DateTime.Now; html += "
  • 结束时间:" + endTime.ToString() + "
  • "; html += "
  • StringBuilder:
  • "; html += "
  • 耗时" + (endTime - startTime).ToString() + "
  • "; html += "
  • -------------------------------------------------------
  • "; startTime = DateTime.Now; html += "
  • 开始时间:" + startTime.ToString() + "
  • "; for (int i = 0; i < 9999; i++) { strBuilder.Append(i.ToString()); } endTime = DateTime.Now; html += "
  • 结束时间:" + endTime.ToString() + "
  • "; //html += "
  • 使用StringBuilder字符串:" + strBuilder.ToString() + "
  • "; html += "
  • 耗时" + (endTime - startTime).ToString() + "
  • "; html += "
"; return html; } }}

页面显示结果:

  • string:
  • 开始时间:2013-7-23 15:52:57
  • 结束时间:2013-7-23 15:52:58
  • StringBuilder:
  • 耗时00:00:00.8140466
  • -------------------------------------------------------
  • 开始时间:2013-7-23 15:52:58
  • 结束时间:2013-7-23 15:52:58
  • 耗时00:00:00.0020001

 

转载于:https://www.cnblogs.com/loklook123/p/3208692.html

你可能感兴趣的文章
Centos6.5 安装 Mysql-5.6.41
查看>>
一周第二次课(12月12日)
查看>>
【后台任务】在线程池线程上运行代码(6)
查看>>
H3CTE讲师分享H3C认证培训实验9 IP基础
查看>>
我的友情链接
查看>>
编码风格之变量的命名规则
查看>>
元数据(MetaData)
查看>>
视频会议、视频聊天、手机视频、跨平台视频如何开发之流程篇
查看>>
配置终端服务和远程桌面服务器身份验证和加密级别
查看>>
Linux Shell脚本测试案例(一)
查看>>
LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义
查看>>
关于分卷压缩文件打不开的问题
查看>>
我的友情链接
查看>>
关于TCP封包、粘包、半包
查看>>
C语言返回值深入研究
查看>>
pydoc用法
查看>>
Wireshark系列之7 利用WinHex还原文件
查看>>
ASA virtual telnet
查看>>
rsync+inotify实现数据实时同步备份
查看>>
apache和php结合、apache的默认虚拟主机
查看>>