博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
StringBuilder类型的基本用法
阅读量:6111 次
发布时间:2019-06-21

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

StringBuilder 采用了构造器设计模式的思想高效地构造一个字符串对象,在构造过程中StringBuilder可以有效避免临时字符串对象的生成。

 

1:当需要操作很长的字符串,或者要对字符串进行非常频繁的操作时,应该使用StringBuilder,其余场合,用String比较方便。

2:之所以说平常情况用String比较方便是因为:

StringBuilder sb="hello world!"; 这样的语句是不行的,要用:

StringBuilder sb=new StringBuilder("hello world!"); 这样子才能初始化一个StringBuilder对象。

 

sb="change the content of StringBuilder"; 这样的语句也是不行的,不能直接把String转换成StringBuilder,显式转换也不成!

 

sb.Remove(0, sb.Length);

sb.Append("Test for string builder change!"); 这样子才能改变一个StringBuilder对象的内容。或者用sb.Replace();方法。

 

3:StringBuilder类还有一个这样的特性:它的Length属性是非ReadOnly的,

假如有: StringBuilder sb=new StringBuilder("12345");

执行: sb.Length=3;

再输出sb的内容,就只剩 123 了。如果这个Length设置大于原来的长度,那么后面补空格。

String 类型没有这个功能,它的Length是read only的!

 

“StringBuilder类内部保留了一个私有的String 类型成员,当ToString()这个方法被调用时,这个String 类型成员将会被赋值并且返回给调用者。在字符串组装期间,这个字符串会在内存上被直接修改。StringBuilderod 不仅仅提供了性能上更加优秀的字符串操作,它还能被用来和非托管代码进行交互。对于非托管的代码,字符串的操作是直接基于内存的,如果使用字符串类型和非托管的代码进行,那潜在的违反了字符串对象不可变的原则。所以StringBuilder类常常被用来和非托管代码进行交互。”

 

转自

http://www.cnblogs.com/csharp4/archive/2010/05/24/1742667.html

转载于:https://www.cnblogs.com/streetpasser/archive/2013/05/16/3081992.html

你可能感兴趣的文章
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>