认识StringBuilder

StringBuilder 类表示可变字符的字符串。

名称

说明

Capacity属性

获取或设置可包含在当前实例所分配的内存中的最大字符数

Length属性

获取或设置当前 StringBuilder 对象的长度

Capacity属性:      

 一般在我们直接New的情况下StringBuildersb=new StringBuilder(),它的预设Capacity是16,每次Append个长度为1的字符串,当我们加入的字符串长度超过16后,它就自动变大,它的Capacity就会变为32,之后就是64,128,256,512….的倍增方式.

Capacity : 16 Length : 0 [预设为16]

Capacity : 32 Length : 17 [第一次Append]

Capacity : 64 Length : 33 [第二次Append]

现在在代码里改变Capacity的属性值为2,

StringBuilder str = new StringBuilder();
str.Capacity = 2; //设置Capacity属性为2

追加长度为2的字符串:

str.Append("01");   //追加长度为2的字符串

Capacity : 2 Length : 0 [预设为2]

Capacity : 2 Length : 2 [第一次Append]

Capacity : 4 Length : 4 [第二次Append]

Capacity : 8 Length : 6 [第三次Append]


 在某一次追加字符串后Length的属性大于之前Capacity的2倍时,Capacity的属性会自动变为当前Length的属性。

StringBuilder str = new StringBuilder();
str.Capacity = 2;
str.Append("01234");   //追加长度为5的字符串
str.Append("012");       //追加长度为3的字符串
str.Append("0123456789012");   //追加长度为13的字符串
str.Append("012");               //追加长度为3的字符串

Capacity : 2 Length : 0 [预设为2]

Capacity : 5 Length : 5 [第一次Append]

Capacity : 10 Length : 8 [第二次Append]

Capacity : 21 Length : 21 [第三次Append]

Capacity : 42 Length : 24 [第三次Append]

Length属性:

StringBuilder.Length:获取或设置当前 StringBuilder 对象的长度。

 StringBuilder str = new StringBuilder("123");  //长度为3
 str.Length = 2;  //设置当前 StringBuilder 对象的长度

结果为12

异常产生:

当str中已有字符串时,在设置str.Capacity时必须大于当前的Length,不然会报“容量小于当前大小”错误



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值