C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第5章 字符串和正则表达式

上传人:E**** 文档编号:89343646 上传时间:2019-05-23 格式:PPT 页数:22 大小:177.50KB
返回 下载 相关 举报
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第5章  字符串和正则表达式_第1页
第1页 / 共22页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第5章  字符串和正则表达式_第2页
第2页 / 共22页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第5章  字符串和正则表达式_第3页
第3页 / 共22页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第5章  字符串和正则表达式_第4页
第4页 / 共22页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第5章  字符串和正则表达式_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第5章 字符串和正则表达式》由会员分享,可在线阅读,更多相关《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第5章 字符串和正则表达式(22页珍藏版)》请在金锄头文库上搜索。

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

4、string 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 删除字符串,Stri

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

7、th/EndsWith、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方法

8、CopyTo方法可以实现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.

9、 newStr=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.

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

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

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

13、der字符串的指定位置,删除一定数量的字符,例如把“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系统需要判定用户所填写的电子邮件地址是否合法,即是否符合电子邮件地址的规则。众所周知,电子邮件的格式形如: 可以抽象为这样的规则: 非空字符序列+非空字

15、符序列+.+com|cn|net,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-z

16、A-Z+”:指包含1个或多个大小写英文字母的字符串; (2)com$:指以“com”结尾的字符串; (3).:使用转移字符“”来表示一个普通的字符“.”,因为“.”在正则表达式中也具有特殊的作用。注意在使用转移字符“”时,需要在字符串前加上“”符号。,5.3.4 示例:验证URL,本小节实现利用C#的正则表达式验证一个URL字符串的合法性。一个合法的URL如下: http:/ 其构造规则为: 协议:/www.域名.com|net|org 根据上一小节的构造正则表达式,可以构造下面的规则: “http:/(www.)0,1.+.(com|net|cn)$“,5.4 小结,本章主要讲解了C#中的字符串的应用,包括对字符串的比较、插入、删除、遍历和复制等操作。除了基本应用之外,还介绍了使用StringBuilder类对字符串的操作。最后还详细讲解了如何使用正则表达式来验

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号