Windows Phone 7手机开发.NET培训期待与您交流!
● 创建字符串:如果多次修改一个字符串,例如,在显示字符串或将其传递给其他方法或应用程序前,创建一个较长的字符串,String类就会变得效率低下。对于这种情况,应使用另一个类System.Text.StringBuilder,因为它是专门为这种情况设计的。
● 格式化表达式:这些表达式将用于后面几章中的Console.WriteLine()方法。格式化表达式使用两个有效的接口IFormatProvider和IFormattable来处理。在自己的类上执行这两个接口,就可以定义自己的格式化序列,这样,Console.WriteLine()和类似的类就可以以指定的方式显示类的值。
● 正则表达式:.NET还提供了一些非常复杂的类来识别字符串,或从长字符串中提取满足某些复杂条件的子字符串。例如,找出字符串中重复出现的某个字符或一组字符,或者找出以s开头、且至少包含一个n的所有单词,或者找出遵循雇员ID或社会安全号码约定的字符串。虽然可以使用String类,编写方法来执行这类处理,但这类方法编写起来比较繁琐,而使用System.Text.RegularExpressions命名空间中的类就比较简单,System.Text. RegularExpressions专门用于执行这类处理。
● Length指定字符串的实际长度;
● Capacity是字符串占据存储单元的最大长度。
对字符串的修改就在赋予StringBuilder实例的存储单元中进行,这就大大提高了添加子字符串和替换单个字符的效率。删除或插入子字符串仍然效率低下,因为这需要移动随后的字符串。只有执行扩展字符串容量的操作,才会给字符串分配需要的新内存,才可能移动包含的整个字符串。在添加额外的容量时,从经验来看,StringBuilder如果检测到容量超出,且容量没有设置新值,就会使自己的容量翻倍。
例如,如果使用StringBuilder对象构造最初的欢迎字符串,可以编写下面的代码:
StringBuilder greetingBuilder =
new StringBuilder("Hello from all the guys at Wrox Press. ", 150);
greetingBuilder.Append("We do hope you enjoy this book as much as we enjoyed
writing it");
一般,使用StringBuilder可以执行字符串的操作,String可以用于存储字符串或显示最终结果。