当前位置:文档之家› 字符串处理常用方法

字符串处理常用方法

C# string类应用判断是否包含子串想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现:public bool Contains (string value)参数value为待判定的子串。

如果包含,返回true;否则返回false。

下面的代码判断“Hello”中是否包含两个子串。

1.bool b1 = strA.Contains("ll"); //true2.Bool b1=strA.Contains("MM"); //false4.1.4 定位字符和子串定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。

在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。

1.IndexOf/LastIndexOfIndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。

如果字符串中不包含这个字符或子串,则返回-1。

常用的重载形式如下所示。

(1)定位字符int IndexOf(char value)int IndexOf(char value, int startIndex)int IndexOf(char value, int startIndex, int count)(2)定位子串:int IndexOf(string value)int IndexOf(string value, int startIndex)int IndexOf(string value, int startIndex, int count)在上述重载形式中,其参数含义如下:value:待定位的字符或者子串。

startIndex:在总串中开始搜索的其实位置。

count:在总串中从起始位置开始搜索的字符数。

下面的代码在“Hello”中寻找字符…l‟第一次出现的位置。

代码4-7 使用IndexOf寻找字符第一次出现位置:Default.aspx.cs1. String s=”Hello”;2. int I = s.IndexOf(…l‟)); //2同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或者子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同,不再赘述。

2.IndexOfAny/LastIndexOfAnyIndexOfAny方法功能同IndexOf类似,区别在于,它可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。

同样,该方法区分大小写,并从字符串的首字符开始以0计数。

如果字符串中不包含这个字符或子串,则返回-1。

常用的IndexOfAny 重载形式有3种:(1)int IndexOfAny(char[]anyOf);(2)int IndexOfAny(char[]anyOf, int startIndex);(3)int IndexOfAny(char[]anyOf, int startIndex, int count)。

在上述重载形式中,其参数含义如下:(1)anyOf:待定位的字符数组,方法将返回这个数组中任意一个字符第一次出现的位置。

(2)startIndex:在原字符串中开始搜索的其实位置。

(3)count:在原字符串中从起始位置开始搜索的字符数。

下例在“Hello”中寻找字符…l‟第一次和最后一次出现的位置。

代码4-8 使用IndexOfAny寻找子串第一次和最后一次出现位置:Default.aspx.cs1. String s = “Hello”;2. char[] anyOf={'H','e','l'};3. int i1 = s.IndexOfAny(anyOf)); //04. int i2 = stIndexOfAny(anyOf)); //3同IndexOfAny类似,LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。

4.1.5 格式化字符串Format方法用于创建格式化的字符串及连接多个字符串对象。

如果读者熟悉C语言中的sprintf()方法,可以了解两者有类似之处。

Format方法也有多个重载形式,最常用的为:static string Format(string format, params object[] args);其中,参数format用于指定返回字符串的格式,而args为一系列变量参数。

可以通过下面的实例来掌握其使用方法。

代码4-9 使用Format设置字符串格式:Default.aspx.cs1. //Format2.String newStr=String.Format("{0},{1}!",strA,strB); //Hello,World!在format参数中包含一些用大括号扩起来的数字,如{0}、{1},这些数字分别一一对应于args参数数组中的变量。

在生成结果字符串时,将使用这些变量代替{i}。

需要说明的是,这些变量并不要求必须为String类型。

在特定的应用中,Format方法非常方便。

例如,想要输出一定格式的时间字符串,便可以使用Format方法,如下面代码所示:newStr=String.Format("CurrentTime={0:yyyy-MM-dd}",System.Da teTime.Now);//形如:2007-05-19其中,格式字符串“yyyy-MM-dd”指定返回时间的格式如“2007-05-19”,其定义可参考System.Globalization.DateTimeFormatInfo 类。

4.1.6 连接字符串String类包含了两个连接字符串的静态方法,它们是Concat和Join,下面分别进行介绍。

1.Concat方法Concat方法用于连接两个或多个字符串。

如果读者熟悉C语言中的strcat()方法,可以了解两者有类似之处。

Concat方法也有多个重载形式,最常用的为:static string Concat(params string[]values);其中,参数values用于指定所要连接的多个字符串,可以通过下面的实例来掌握其使用方法。

代码4-10 使用Concat连接字符串:Default.aspx.cs1. //Concat2. newStr="";3. newStr=String.Concat(strA," ",strB);4. Console.WriteLine(newStr); //"Hello World"2.Join方法Join方法利用一个字符数组和一个分隔符串构造新的字符串。

它常常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。

Join的常用形式为:? static string Join(string separator, string[]value);其中,参数separator 为指定的分隔符,而values用于指定所要连接的多个字符串数组,下例用“^^”分隔符把“Hello”和“World”连起来。

代码4-11 使用Join连接字符串:Default.aspx.cs1. //Join2. newStr="";3. String[] strArr={strA,strB};4. newStr=String.Join("^^",strArr);5. Console.WriteLine(newStr); //"Hello^^World"3.连接运算符“+”String支持连接运算符“+”,可以方便的连接多个字符串,如下例把“Hello”和“World”连接起来。

代码4-12 使用“+”连接字符串:Default.aspx.cs1. //使用+2. newStr="";3. newStr=strA+strB; //"HelloWorld"4.1.7 拆分字符串使用Join方法,可以利用一个分隔符把多个字符串连接起来。

反过来,使用Split方法可以把一个整串,按照某个分隔字符或者字符串,拆分成一系列小的字符串。

例如,把整串“Hello^^World”按照字符“^”进行拆分,可以得到3个小的字符串:“Hello”、“”(空串)和“World”;根据字符串“^^”,则可以得到两个小的字符串:“Hello”和“World”。

1.根据字符拆分根据字符拆分的Split重载方法是:public string[]Split(params char[]separator);其中,参数separator数组包含分隔符。

下例把“Hello^^World”根据“^”进行拆分。

代码4-13 根据字符分裂分隔符字符串:Default.aspx.cs1. //Split2. newStr="Hello^^World";3. char[] separator={'^'};4. String[] splitStrings=new String[100];5. splitStrings=newStr.Split(separator);6. int i=0;7. while(i<splitStrings.Length)8. {9. Console.WriteLine(splitStrings[i])10. i++;11. }输出结果为:HelloWorld2.根据字符串拆分根据字符拆分的Split重载方法是:public string[]Split(string[] separator,StringSplitOptions options)其中,参数separator数组是分隔字符串数组;参数options取值RemoveEmptyEntries时,将过滤空的数组元素,若取值one则返回。

下例把“Hello^^World”根据“^^”进行拆分。

代码4-14 根据字符串分裂分隔符字符串:Default.aspx.cs1. //split2. String[] separator = new string[] { strB.Text };3. String[] splitStrings=new String[100];4. splitStrings=newStr.Split(separator,StringSplitOptions.None);5. int i=0;6. while(i<splitStrings.Length)7. {8. Page.Response.Write(splitStrings[i] + "<br />");9. i++;10. }输出结果为:HelloWorld4.1.8 插入字符串String类包含了在一个字符串中插入新元素的方法Insert,用于在字符串的任意位置插入任意的字符:public string Insert(int startIndex, string value);其中,参数startIndex用于指定所要插入的位置,从0开始索引;value指定所要插入的字符串。

相关主题