高效掌握C#第三回---字符串常用操作

  上两回介绍了C#中的最常用的6种基本类型以及它们的集合---数组。本回书讲解字符串常用基本操作。

  字符串是我们编程过程中最常打交道的对象了,所以掌握.net framework给我们提供的常用字符串操作函数是非常必要的。

  1 分割字符串

用单个字符来分隔:

string str="aaajbbbjccc";

string[] sArray=str.Split('j');

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:

aaa

bbb

ccc

用多个字符来分隔:

string str="aaajbbbscccjdddseee";

string[] sArray=str.Split(new char[2] {'j','s'});

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:

aaa

bbb

ccc

ddd

eee

////////////////////////////////////////////////

string[] arr = str.Split("o");

这是一个具有语法错误的语句,Split 的 separator 参数应该是 char[] 或 string[],不应是字符串。正确的示例:

string str = "technology";

char[] separator = { 'o' };

string[] arr = str.Split(separator);

////////////////////////////////////////////////////

2.合并字符串

合并Join方法:在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串。

方法原型

详细介绍:将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str

string Join(string separator, string[] value);

Console.WriteLine(string.Join("爱", new string[] { "你", "我","他" }));

//输出结果是:你爱我爱他

3.取子串

格式:Substring(int startindex, int len)

用于获取源字符串指定起始位置startindex,指定长度len的字符串。

参数Startindex索引从0开始,且最大值必须小于源字符串的长度,否则会编译异常;

  参数len的值必须不大于源字符串索引指定位置开始,之后的字符串字符总长度,否则会出现异常;

示例:

string s4 = "Visual C# Express";

System.Console.WriteLine(s4.Substring(7, 2)); // outputs "C#" ,C为第八个字符

4.替换

格式:Replace(string oldValue, string newValue)

用于字符串中特定字符串组合的替换,即将源字符串中的所有oldValue 字符串替换为 newValue 字符串。

示例:

string s5 = "Visual C# Express";

System.Console.WriteLine(s5.Replace("C#","VB")); // outputs "Visual VB Express"

System.Console.WriteLine(s4.Replace("C#", "Basic")); // outputs "Visual Basic Express"

5. 字符串索引 IndexOf()

若要在一个字符串中搜索另一个字符串,可以使用 IndexOf()。如果未找到搜索字符串,IndexOf() 返回 -1;否则,返回它出现的第一个位置的索引(从零开始)。

示例:

string s13 = "Battle of Hastings, 1066";

System.Console.WriteLine(s13.IndexOf("Hastings")); // outputs 10 ,注意从0开始数起

System.Console.WriteLine(s13.IndexOf("1967")); // outputs -1

6.Contains(判断是否存在)

public bool Contains(string text):如果字符串中出现text,则返回true,反之false,如果text为("")也返回true。

如:

string st="语文数学英语";

bool b=st.Contains("语文");

Console.WriteLine(b);//true

7.Trim(清空空格):

public string Trim ():将字符串对象包含的字符串两边的空格去掉后返回。

public string Trim ( params char[] trimChars ):从此实例的开始和末尾移除数组中指定的一组字符的所有匹配项。

如:

string st ="abcadef";

string newstring = st.Trim(new char[] {‘a’});//寻找st字符串中开始与末尾是否有与“a“匹配,如有,将其移除。

Console.WriteLine(newstring); //即:bcadef

注:如果字符串为"aaaabcadef",返回依然为bcadef。当移除第一个a时,开始依然为a,继续移除,直到没有。

public string TrimEnd ( params char[] trimChars ):对此实例末尾与指定字符进行匹配,true则移除

public string TrimStart ( params char[] trimChars ):对此实例开始与指定字符进行匹配,true则移除

8.EndsWith,StartsWith(判断字符串的开始或结束)

public bool EndsWith ( string value ):判断对象包含字符串是否以value指定的字符串结束,是则为 true;否则为 false。

public bool EndsWith ( string value, StringComparison comparisonType ):第二个参数设置比较时区域、大小写和排序规则。

public bool StartsWith ( string value ):判断对象包含字符串是否以value指定的字符串开始,是则为 true;否则为 false。

public bool StartsWith ( string value, StringComparison comparisonType ) :第二个参数设置比较时区域、大小写和排序规则。

如:

string st="语文数学英语abc";

bool b=st.EndsWith("英语ABC",StringComparison.CurrentCultureIgnoreCase);//第二个参数忽略大小比较。

Console.WriteLine(b);//true

9.填充字符串 PadLeft

int n = 2;

string strTemp = n.ToString().PadLeft(3, '0');

Console.WriteLine(strTemp); //看字符串长度是否满足3位,不满足则在字符串左边以"0"补足,输出002

10. 判断开始和结束

StartsWith开始

方法原型

bool <strName>.StartsWith(String value) 确定此实例的开头是否与指定的字符串匹配

string str = "我爱中华";

bool istrue = str.StartsWith("我哎");

Console.WriteLine(istrue);

输出结果是:False

EndsWidth结束

方法原型

bool <strName>.EndsWith(string value) 确定此实例的结尾是否与指定的字符串匹配

string str = "我爱中华";

bool istrue = str.EndsWith("中国");

Console.WriteLine(istrue);

输出结果:False