c#中string的操作

4.字符串(引用类型)

1)字符串的不变性

当你给一个字符串重新赋值之后,老值并没有被销毁,而是重新开辟一块内存空间存储新值。比如:string person = “张三”;

person = “王五”;给张三在堆上分配的内存空间没有被销毁,重新在堆上给王五分配了一块内存空间,并把地址赋给person。

2)当程序结束后,GC(垃圾回收器)扫面整个内存,如果发现有空间没有被指向,则立即被销毁。

3)可以将string类型看做是char类型的只读数组。

string s = "abcdefg";

s[0] = b;//错误,因为s是只读的。

char []chs = s.ToCharArray();

chs [0] = b;

//将字符数组转换成字符串

s = new string(chs);

//创建一个计时器,记录程序运行的时间

Stopwatch sw = new Stopwatch();

sw.start();//计时开始

sw.Stop();//计时结束

5.字符串的各种方法

1)Length :获得当前字符串中字符的个数或数组中元素的个数。

2)ToUpper():将字符串中的字符转换成大写

3)ToLower():将字符串中的字符转换成小写。

3)Equals(A ,B):可以忽略字符串的大小写,进行比较。

corse1.Equals(corse2); //通过调用这个成员函数实现字符串比较

//忽略大小写实现字符串的比较

corse2.Equals(corse1,StringComparison.OrdinalIgnoreCase);

4).Split(new char [] , StringSplitOptions.RemoveEmptyEnter);将不想要的字符放到new char[]中,实现分割字符,并把空字符移除掉。

5)contain()用于判断是否包含某些字符串

6)replace()将指定字符串替换掉

7)substring(1,2)从第1位开始截取想要的2个字符。

8).indexof()找字符串中字符第一次出现的位置。

9).Lastindexof()找字符中最后一次出现的位置。

10).Trim()同时去掉字符串前面和后面的空格

11).TrimStart()去掉字符串中前面的空格

12).TrimEnd()去掉字符串中后面的空格。

13).IsNullOrEmpty()判断是Null 还是为Empty.

14).Join()将给定的字符添加到数组元素的后面,最后一个不加。

15).StartWith()判断是否以给定的字符串或字符开始。

16).EndWith()判断是否以给定的字符串或字符结束。

6.stringbuilder()用与字符串中大量的赋值或拼接。

注意:详情见代码。

7.//split实现将字符串转换成字符串数组,join实现将字符数组转换成字符串。

//将 sharp c hello 转换成hello c sharp

string strSharp = "sharp c hello";

string [] cShSplit = strSharp.Split(new char []{},StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < cShSplit.Length/2; i++)

{

string temp = cShSplit[i];

cShSplit[i] = cShSplit[cShSplit.Length -1-i];

cShSplit[cShSplit.Length - 1 - i] = temp;

}

Console.WriteLine();

//for (int i = 0; i < cShSplit.Length; i++)

//{

// Console.Write(cShSplit[i]);

//}

//strSharp = cShSplit.Join('|' , );

//在数组元素间键入空格,并转换成字符串。

strSharp = string.Join(" " , cShSplit);

Console.WriteLine(strSharp);