第5章 字符串和正则表达式.ppt_第1页
第5章 字符串和正则表达式.ppt_第2页
第5章 字符串和正则表达式.ppt_第3页
第5章 字符串和正则表达式.ppt_第4页
第5章 字符串和正则表达式.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 字符串和正则表达式,字符串是应用程序和用户交互的主要方式,是评价一个编程语言非常重要的内容。.NET提供了几个类来快速实现字符串操作,包括String,System.Text命名空间等。本章将对这一部分内容进行介绍。,5.1 字 符 串,字符串(String)是最常用的字符串操作类,可以帮助程序设计人员完成绝大部分的字符串操作功能,使用方便。如图所示为String类的属性和常用方法。,5.1.1 比较字符串,比较字符串是指按照字典排序规则,判定两个字符串的相对大小。按照字典规则,在一本英文字典中,出现在前面的单词小于出现在后面的单词。在String类中,常用的比较字符串的方法包括Com

2、pare,CompareTo,CompareOrdinal以及Equals。 1Compare方法 Compare方法是String类的静态方法,用于全面比较两个字符串对象,包括6种重载方式。 2CompareTo方法 3Equals方法 4比较运算符,5.1.2 格式化字符串,Format方法用于创建格式化的字符串以及连接多个字符串对象。Format与C语言中的sprintf()方法有类似之处。Format方法也有多个重载形式,最常用的为: public static string Format(string format, params object args); 其中,参数format用

3、于指定返回字符串的格式,而args为一系列变量参数。可以通过下面的实例来掌握其使用方法。 1./Format 2.String newStr=String.Format(0,1!,strA,strB); 3.Console.WriteLine(newStr); / 输出为Hello,World!,5.1.3 连接字符串,String类包含了两个连接字符串的静态方法Concat和Join。 1Concat方法 Concat方法用于连接两个或多个字符串。Concat方法与C语言中的strcat()方法有类似之处。Concat方法也有多个重载形式,最常用的为: public static strin

4、g Concat(params stringvalues); 2Join方法 Join方法利用一个字符数组和一个分隔符构造新的字符串。常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。Join的常用形式为: public static string Join(string separator, stringvalue); 3连接运算符+ String支持连接运算符“+”,可以方便地连接多个字符串。例如,用“+”把“Hello”和“World”连接起来。,5.1.4 分割字符串,使用前面介绍的Join方法,可以利用一个分隔符把多个字符串连接起来。反过来,使用Split方法可以把一个整串,

5、按照某个分隔符分裂成一系列小的字符串。例如,把整串“HelloWorld”按照字符进行分裂,可以得到3个小的字符串,即“Hello”、“”(空串)和“World”。Split有多个重载形式,最常用的为: public string Split( params char separator);,5.1.5 插入字符串,String类包含了在一个字符串中插入新元素的方法,可以用Insert在任意位置插入任意字符。而使用PadLeft/PadRight方法,可以在一个字符串的左右两侧进行字符填充。 1Insert方法 2PadLeft/PadRight方法,5.1.6 删除字符串,String类包含

6、了删除一个字符串的方法,可以用Remove方法在任意位置删除任意长度的字符,也可以使用Trim/TrimEnd/TrimStart方法剪切掉字符串中的一些特定字符。 1Remove方法 Remove方法从一个字符串的制定位置开始,删除指定数量的字符。最常用的为: 2Trim/TrimStart/TrimEnd方法 若想把一个字符串首尾处的一些特殊字符剪切掉,如去掉一个字符串首尾的空格等,可以使用String的Trim方法。,5.1.7 遍历字符串,遍历子字符串(简称子串)是指在一个字符串中寻找其中包含的子串或者某个字符,在String类中,常用的定位子串和字符的方法包括StartWith/En

7、dsWith、IndexOf/LastIndexOf以及IndexOfAny/LastIndexOfAny。 1StartWith/EndsWith方法 2IndexOf/LastIndexOf 3IndexOfAny/LastIndexOfAny,5.1.8 复制字符串,String类包含了在复制字符串方法Copy和CopyTo,可以完成对一个字符串及其一部分的复制操作。 1Copy方法 若想把一个字符串复制到另一个字符数组中,可以使用String的静态方法Copy来实现,其形式为: public static string Copy(string str); 2CopyTo方法 CopyT

8、o方法可以实现Copy同样的功能,但功能更为丰富,可以复制源字符串中的一部分到一个字符数组中。另外,CopyTo不是静态方法,其形式为: public void CopyTo(int sourceIndex, char destination, int destinationIndex, int count);,5.1.9 大小写转换,String提供了方便转换字符串中所有字符大小写的方法ToUpper和ToLower。这两个方法没有输入参数,使用也非常简单。下例首先把“Hello”转换为“HELLO”,然后再变为小写形式“hello”。 1./ToUpper|ToLower 2.newStr

9、=strA.ToUpper(); 3.Console.WriteLine(newStr);/输出为HELLO 4.newStr=strA.ToLower(); 5.Console.WriteLine(newStr);/输出为hello,5.2 StringBuilder类,与String类相比,System.Text.StringBuilder类可以实现动态字符串。此处,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟新的内存空间,而是直接在原StringBuilder对象的基础上进行修改。StringBuilder类属性和常用方法如图所示。,5.2.1 创建StringBu

10、ilder对象,StringBuilder类位于命名空间System.Text中,使用时,可以在文件头通过using语句引入该命名空间: using System.Text; 声明StringBuilder对象需要使用new关键字,并可以对其进行初始化。如下语句声明了一个StringBuilder对象myStringBuilder,并初始化为“Hello”。 StringBuilder myStringBuilder=new StringBuilder(Hello);,5.2.2 追加字符串,追加一个StringBuilder是指将新的字符串添加到当前StringBuilder字符串的结尾处,

11、可以使用Append方法和AppendFormat方法来实现这个功能。 1Append方法 Append方法实现简单的追加功能,常用形式为: public StringBuilder Append(object value); 2AppendFormat方法 AppendFoamat方法可以实现对追加部分字符串的格式化,可以定义变量的格式,并将格式化后的字符串追加在StringBuilder后面。常用形式为: StringBuilder AppendFormat(string format, params object args);,5.2.3 插入字符串,StringBuilder的插入操作

12、是指将新的字符串插入到当前StringBuilder字符串的指定位置,如“Hello”变为“Heeeello”。可以使用StringBuilder类的Insert方法来实现这个功能,常用形式为: public StringBuilder Insert(int index,object value); 其中,参数index指定所要插入的位置,并从0开始索引,如index=1,则会在原字符串的第2个字符之前进行插入操作;同Append一样,参数value并不仅是只可取字符串类型。,5.2.4 删除字符串,StringBuilder的删除操作可以从当前StringBuilder字符串的指定位置,删除

13、一定数量的字符,例如把“Heeeello”变为“Hello”。可以使用StringBuilder类的Remove方法来实现这个功能,常用形式为: public StringBuilder Remove( int startIndex, int length);,5.3 正则表达式,正则表达式是一个非常大的题目,许多的编程语言和工具都支持正则表达式,.NET类库名字空间System.Text.RegularExpressions包括了一系列可以充分发挥正则表达式威力的类,如图5-3所示。 本节,首先介绍正则表达式的含义,然后简单介绍如何使用Regex类来实现字符串的模式匹配,并给出构造正则表达式

14、的技术。除此之外,还可以充分利用RegularExpression空间中的其他类,实现诸如模式查找、模式替换等更为强大的功能。本书只是抛砖引玉,不对其作更深入的探讨。,5.3.1 正则表达式简介,正则表达式是一种可以用于模式匹配的工具。简单地说,正则表达式就是一套规则,用于判定其他的元素是否符合它。 例如,在网络应用上的一个用户注册页面中(如论坛或者交友网站的注册页面),可能有“电子邮件”这一项需要用户填写。Web系统需要判定用户所填写的电子邮件地址是否合法,即是否符合电子邮件地址的规则。众所周知,电子邮件的格式形如: 可以抽象为这样的规则: 非空字符序列+非空字符序列+.+com|cn|ne

15、t,5.3.2 正则表达式(Regex)类,Regex类包含若干静态方法,用于使用正则表达式进行字符串匹配,常用属性和方法如图5-4所示。 最常用的方法为Match,在输入字符串参数中搜索正则表达式的匹配项,并将匹配成功的结果作为单个Match对象返回。常用形式为: public static Match Match( string input, string pattern);,5.3.3 构造正则表达式,正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串,如上一节示例中的正则表达式“a-zA-Z+a-zA-Z+.com$”,含义如下: (1)“a-zA-Z+”:指包含1个或多个大小写英文字母的字符串; (2)com$:指以“com”结尾的字符串; (3).:使用转移字符“”来表示一个普通的字符“.”,因为“.”在正则表达式中也具有特殊的作用。注意在使用转移字符“”时,需要在字符串前加上“”符号。,5.3.4 示例:验证URL,本小节实现利用C#的正则表达式验证一个URL字符串的合法性。一个合法的URL如下: 其构造规则为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论