学习笔记-- 使用System.Text.StringBuilder的方法和属性

 StringBuilder 的 indexer 属性与string 的 indexer 用法一致,都返回 char 类型。

Capacity 属性获取或设定 StringBuilder 的内存容量。

StringBuilder 的 EnsureCapacity 方法将当前容量 times 2 (当前 13 * 2), 如果仍小于所需容量(例如 40),新容量设置为41。大于的话就设置为当前容量。

StringBuilder 的 length 属性:如果set 的长度比 StringBuilder 的字符窜短的话,截取 length 设定的长度。

StringBuilder  Append 方法可以把各种 data - type 加到 StringBuilder 的后边。

Insert 可以把 data - type 插入到StringBuilder 的任何位置。

remove 方法可以删除在 StringBuilder 任何位置上的一段 string.

Replace 方法比较有意思,它 search 制定的 string or char 并把它用另一个 string or char 替换。

AppendFormat 方法:

String str = "format is {0 , 10:E}";

format 的格式为 {x[,y][:FormatString]}, where x 表示第几个参数要被formatted, y 是optional 的参数,指出format 结果应显示多少各字符。如果目标 string < y, 用空格代替多余字符(y - string.length 个空格). y 可正数/负数,正数时把 string aligns  to the right..,negative integer aligns it to the left. FormatString applies a particular format to the argument: Currency, decimal or scientific ...

如果要在列表或文本框中显示一个变量的值,一般要用static String.Format() 方法来获得改变量的核实字符窜表示,但用于请求所需的格式说明符合传递给 Console.writeline() 格式相同,所以用 Console.writeline() 来做事例说明。

Console.writeline("The double is {0,10:E} and teh in contains {1}", d, i) ;

Console.writeline()  只是把参数的完整列表传递给 static String.Format(),

public void Console.writeline(string format, object arg0, object arg1)

{

Console.writeline(String.Format(format, arg0, arg1) ;

}

String.Format() 现在要把对应对象的合适字符窜按格式说明符的要求显示并替换。但这一建立字符窜的过程需要用 stringbuilder 实例,而不是string 实例。先用 字符窜的第一部分 (the double is ) 创建和初始化。调用stringbuilder.AppendFormat() 方法, 传递第一个格式说明符 "{0, 10:E}" 和相应的 double,把这个对象的字符窜表示stringbuilder.Append() 到构造好的字符窜中。这个过程会重复直到全部格式化好的字符窜为止。

 stringbuilder.AppendFormat() 需要指出如何格式化对象,他首先检查对象是否执行 System.IFormattable 接口((IFormattable)object对象),只要试着把这个对象转换为接口,看看转换是否成功即可,或者使用c# 关键字 is, 也能实现此转换。如果不执行接口,stringbuilder.AppendFormat()  只会调用对象的toString() 方法。

但是 所有预定一的基本数字类型都执行这个接口。

interface IFormattable{

string ToString(string format, IFormatProvider formatProvider);}

format 参数最先传给 Console.writeline or string.format 方法。stringbuilder.AppendFormat() 调用格式符,其中 double d 调用自己的带两个参数的ToString 方法, 返回d 按照 格式 E 返回的值传递给stringbuilder.AppendFormat() 。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值