1.建立字符串:如果多次修改一个较长字符串,该字符串类就会变得效率低下。在这种情况下应使用别一个类System.Text.StringBuilder
2.格式化表达式:格式化表达式有两个有效的接口IformatProvider和Iformattbale来处理。在自己的类上执行这两个接口,就可以定义自己的格式化序列,这样,Console.WriteLine()和类似的类就可以以指定的方式显示类的值。
3.正则表达式:.NET还提供了一些非常复杂的类来处理需要识别字符串,或从长字符串中撮满足某些比较复杂的条件的子符串的情况。这里所说的复杂,是指需要确定字符串中重复出现某个字符或一组字符的情况,或者需要确定以s开关、且至少包含一个n的所有单词等的情况。虽然可以使用字符串类,编写方法来执行这类处理,但这类方法编写起来比较繁琐,而使用System.Text.RegularExpressions中的类就比较简单,System.Text.RegularExpressions专门用于执行这类处理。

System.String

为了解决在长字符串使用System.String的问题,Microsoft提供了System.Text.StringBuilder类。StringBuilder不像字符串功能那么强大,有那么多己所支持的方法。在StringBuilder上可以进行的处理仅限于替换和添加或删除字符串中的文本。但是,它的工作方式宾高效。
在构造一个字符串时,要给它分配足够的内存来保存字符串,但StringBuilder通常分配的内存会比需要的更多。可以选择电焊工指定要分配多少内存,但如果没有显示指定,内存空间量在默认的情况下就根据STringBuilder初始化时的字符串长度来确定。它有两个主要的属性,Length指定字符串的实际长度,Capacity是字符串占据内存空间的长度。对字符串的修改就在这个内存窨中进行,这就大大提高了添加子字符串和替换单个字符的效率。删除或子字符串仍然低下,因为这需要移动随后的字符串。只有执行扩展字符串容量的操作,才会给字符串分配需要的新内存,才可能移动包含的字符串。stringBuilder如果检测到容量超出,且该容量中没有显示设置新值,就会使自己的容量翻倍。
定义:
StringBuilder sb = new StringBuilder("Hello");
或者
StringBuilder sb = new StringBuilder(20);
只读属性MaxCapacity表示对给定的StringBuilder实例的限制,最多可以有多少容量。默认的情况下是由int.MaxValue给定(大约20亿)

posted on 2006-01-07 20:24  CIPCHK  阅读(319)  评论(0编辑  收藏  举报