常用类库--Math、String、StringBuilder类
Math类
Math类用于提供初等数学函数实现。
Math类是System程序集中的一个静态类。
Math类定义了两个静态常量字段E和PI,分别表示自然对数e和圆周率Π。
String类
C#中使用关键字string来定义字符串类型,其原型为.NET类库中的System.String类。
C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
1>.静态字段
String类提供一个静态字段Empty(表示一个空字符串)。
string.Empty、null和""的区别
string.Empty和""意义相同,都表示空字符串;空字符串和空引用null是不同的,空字符串是一个对象,具有存储空间,而null表示尚未创建对象。例如,对空字符串调用length属性得到的是0,而对值为null的字符串调用length属性则会引发异常。
2>.属性
String类只拥有一个公共属性Length(表示字符串的长度)。
3>.字符串操作
1.字符串与字符数组转换
字符串转换到字符数组
ToCharArray:把字符串中的字符复制到数组中
String.Copy:将字符串复制到另一个字符数组中。
CopyTo:将字符串复制到另一个字符数组中。
字符数组转换到字符串--使用String类的构造函数
String(char,int):将一个字符重复多次来形成一个字符串。
String(char[ ]):将一个字符数组全部转换为一个字符串。
String(char[ ],int,int):将一个字符数组的一部分转换为一个字符串。
2.比较字符串
比较字符串是按照字典排序规则,判断两个字符的相对大小。按照字典规则,出现前面的单词小于出现在后面的单词。
String.Compare:比较字符串的内容,确定某些字符是否相等
CompareTo:比较字符串的内容,确定某些字符是否相等
String.CompareOrdinal:比较字符串的内容,确定某些字符是否相等
Object.RenferenceEquals:用于判断两个对象是否为同一个对象。比较的是两个对象是否指向同一个地址。
Equals方法用于判断两个字符串是否相同,有两种重装形式,
public bool Equals(string)
public static bool Equals(string,string)
Equals方法内部首先是调用Object.RenferenceEquals判断是否同一对象,如果返回false,接着判断两个字符串是否相同,相同返回true,否则返回false.
“==”、“!=”:其内部是通过Equals()方法来计较两个字符串是否相同的。
3.定位字符和子串
StartsWith:判断字符串是否与提供的子串开始。
EndsWith:判断字符串是否与提供的子串结束。
IndexOf:定位字符串中第一次出现某个给定子字符串或字符的位置。
IndexOfAny:定位字符串中第一次出现字符数组中的某个字符或一组字符的位置。
LastIndexOf:与IndexOf一样,但定位最后一次出现的位置。
LastIndexOfAny:与IndexOfAny,但定位最后一次出现的位置。
4.格式化字符串
String.Format:格式化包含各种值的字符串和如何格式化每个值的说明符
5.连接字符串
String.Concat:用于实现字符串连接功能
String.Join:把多个字符串连接在一起,并用一个特殊的符号来分隔。
“+”:将字符串连接在一起
6.分隔字符串
Split:在出现给定字符的地方,把字符串拆分为一个子字符串数组
7.插入和填充字符串
Insert:指定索引位置,插入字符串
PadLeft:在字符串的开头,通过添加指定的重复字符填充字符串
PadRight:在字符串的结尾,通过添加指定的重复字符填充字符串
8.删除和裁切字符串
Remove:删除字符串
Trim:删除首尾的空白或指定字符数组中的字符
9.替换字符串
Replace:用另一个字符或子字符串替换字符串中给定的字符或子字符串
10.更改大小写
ToLower:把字符串转换为小写形式
ToUpper:把字符串转换为大写形式
11.字符串截取
Substring:在字符串中获取给定位置的子字符串
12.判断是否包含子串
Contains:判断字符串中是否包含提供的子串
13.字符串解析
Parse
格式化能将不同类型的对象转换为字符串格式,与之相反,许多类型还能够从一个字符串出发构造其对象,这个过程叫做“字符串解析”。C#中的很多类型都定义了字符串解析的基本方法,这些方法的共同特点是:1.方法名为parse。2.方法是静态的,且返回类型就是该方法所属的类型。3.方法只有一个string类型的参数。
举例(下面给出了一些常见类型的解析字符串的例子)
Bool b=bool.parse(“true”);
Datetime dt=datetime.parse(“2008-10-22”);
TryParse
在使用这些类型的parse方法时,如果字符串不符合类型的格式要求,程序就会发生异常。为了提高程序的可靠性,一些类型还提供了另一个替代方法TryParse。和Parse方法不同,TryParse方法通常有两个参数,一个表示要解析的字符串,另一个为输出参数,用于存放解析的结果,方法返回一个布尔值,用于指示解析是否成功。
StringBuilder类
String类的索引函数是只读的,其各种操作方法不是修改字符串本身,而是生成新的字符串。准确地说,一旦创建了一个String对象,其内容就是不可变的,每次操作都是生成一个新字符串。
为了方便对同一个字符串的频繁操作,.NET类库专门提供了一个StingBuilder类,它对字符串进行动态管理,即允许直接修改字符串本身的内容,而不是每次操作都生成新字符串。