Liny_@NotePad

沉迷ACG中

<C#高级编程>第8章笔记

YOYO posted @ 2010年3月04日 20:05 in 【C#】 with tags C#高级编程 , 1934 阅读

对正则表达式依然呈恐惧状态 = = 知道.NET有正则就满足了。。怎么用需要的时候再百度吧。。

8 字符串和正则表达式


String

 

Java中的String类相似,C#System.String类也是个不可变的数据类型(常量类)。

修改字符串内容的方法和运算符实际上是创建一个新的字符串。

 

StringBuilder

 

为了避免多次修改String带来的性能问题,可以使用System.Text.StringBuilder类。

默认情况下根据初始化的字符串长度来确定,可以指定原始容量。

 

主要属性

·Length:字符串的实际长度

·Capacity:字符串占据存储单元的长度

·MaxCapacity:该实例最多可以有多少容量,一般是int.MaxValue。也可以自己指定,一旦超出就会抛出异常。

 

添加子串和替换单个字符的效率大大提高,删除或插入子串仍然效率低下,因为需要移动后面的字符串。

只有执行扩展容量的操作才会给字符串分配需要的新内存,才可能移动整个字符串。

如果容量超出,且容量没有被设置新值,StringBuilder会将自己的容量翻倍。

 

主要方法

·Append():追加子串。

·AppendFormat():添加特定格式的字符串,会在调用Console.WriteLine()时调用。

·Insert():在当前字符串中插入一个子字符串。

·Remove():从当前字符串中删除字符。

·Replace():替换字符。

·ToString()StringBuilder不能转换为String(不论是隐式转换还是显式转换),只能通过该方法。

 

字符串的格式化

 

Console.WriteLine()可以进行格式化输出。此时是调用了String.Format()静态方法。

该方法通过构建StringBuilder对象,依次AppendFormatAppend来构造一个格式化字符串。

 

若对象需要指出格式化,可以实现IFormattable接口,提供由该接口定义的ToString()重载方法即可。

 

正则表达式

 

可以通过Regex.Matches(text, pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture )的方法来匹配。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter