C# StringBuilder
来源:互联网 发布:域名注册是什么意思 编辑:程序博客网 时间:2024/06/05 22:21
StringBuilder类的Capacity属性和Length属性
StringBuilder 类表示可变字符的字符串。
名称
说明
Capacity属性
获取或设置可包含在当前实例所分配的内存中的最大字符数
Length属性
获取或设置当前 StringBuilder 对象的长度
StringBuilder 类Capacity属性的默认值为16。
StringBuilder sb =newStringBuilder();
Console.WriteLine("Length属性:" + sb.Length +"Capacity属性:" + sb.Capacity);
Console.ReadLine();
当StringBuilder 对象的Length属性值超过Capacity属性的长度时,StringBuilder对象内部会重新构造一个字符数组。Capacity属性会变为以前的2倍。例如:Capacity属性的默认值为16,当追加字符串的长度超过16时,Capacity属性会扩充为32。
StringBuilder sb =newStringBuilder();
//追加长度为17的字符串
sb.Append("01234567890123456");
Console.WriteLine("Length属性:" + sb.Length +" Capacity属性:" + sb.Capacity);
Console.ReadLine();
如果给Capacity属性设定一个值的话,当追加字符串的长度超过Capacity属性时,Capacity属性会变为所设定值的2倍。
StringBuilder sb =newStringBuilder();
//设置Capacity属性的值为10
sb.Capacity = 10;
//追加长度为17的字符串
sb.Append("01234567890123456");
Console.WriteLine("Length属性:" + sb.Length +" Capacity属性:" + sb.Capacity);
Console.ReadLine();
当StringBuilder 对象的Length属性超过Capacity的2倍时,不管有没有设置过Capacity属性的值,最终Capacity属性会和Length属性相同。
StringBuilder sb =newStringBuilder();
//追加长度为33的字符串
sb.Append("012345678901234567890123456789012");
Console.WriteLine("Length属性:" + sb.Length +" Capacity属性:" + sb.Capacity);
Console.ReadLine();
StringBuilder sb =newStringBuilder();
//设置Capacity属性的值为10
sb.Capacity = 10;
//追加长度为21的字符串
sb.Append("012345678901234567890");
Console.WriteLine("Length属性:" + sb.Length +" Capacity属性:" + sb.Capacity);
Console.ReadLine();
我们在构造StringBuilder对象时,最好先预估下追加字符串的总长度,根据这个总长度,在StringBuilder构造函数中设置一下Capacity参数。这样避免字符串的长度超过Capacity时,StringBuilder对象会重新扩充构造内部的字符数组,影响性能。
- C# StringBuilder
- C# StringBuilder
- C# StringBuilder
- C# StringBuilder
- C# StringBuilder
- C#之 StringBuilder Class
- C#中的Stringbuilder类
- C#中StringBuilder用法
- 【c# 】使用 StringBuilder
- C#使用 StringBuilder 类
- C#使用 StringBuilder 类
- C#中StringBuilder用法
- C# StringBuilder 用法
- C#中StringBuilder用法
- c# string stringbuilder
- StringBuilder详解C#
- C# StringBuilder用法
- C# - String与StringBuilder
- 一球从100米高度自由落下
- android的触摸机制
- C/C++不同文件夹下包含头文件的方法及#include的使用
- C/C++之回调函数---函数指针的作用
- Linux字符设备驱动框架
- C# StringBuilder
- Webdriver配合Tesseract-OCR 自动识别简单的验证码
- VS2013开发QT时提示很多未定义标识符(不影响编译)
- PCIe学习笔记(1)---PCI相关
- 【安装】maven安装配置&教程
- Linux将普通命令加入环境变量
- 解决百度地图签名后无法显示问题
- js 实现对JSON数组模糊查询的方法
- WebRtc架构