




已阅读5页,还剩142页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 7章 常用数据结构与算法 数据结构和算法是程序设计的基石。 本章重点讲述 C#中的几个主要的数据结构类型:字符串、数组和枚举。 本章还将介绍一些常用算法,如几种典型排序算法的 C#实现。* 2 C#程序设计实用教程7.1 字符串 字符串 是应用程序和用户交互的主要方式之一。 .NET提供了几个类来快速实现字符串操作,包括String、 StringBuilder等。* 3 C#程序设计实用教程7.1.1 静态字符串 String System.String是最常用的字符串操作类。下面从各个应用的角度对 String类进行详细的介绍。 1. 比较字符串 比较字符串是指按照字典排序规则,判定两个字符的相对大小。 在 String类中,常用的比较字符串的方法包括Compare、 CompareTo、 CompareOrdinal以及 Equals。* 4 C#程序设计实用教程方法 说明Compare 静态方法。比较两个指定的 String对象CompareTo 非静态方法。将此字符串与指定的对象或 String进行比较,并返回两者相对值的指示Concat 静态方法。连接 String的一个或多个字符串Contains 非静态方法。返回一个值,该值指示指定的 String对象是否出现在此字符串中 Equals 非静态方法。确定两个 String对象是否具有相同的值Format 静态方法。将指定的 String中的每个格式项替换为相应对象的值的文本等效项 IndexOf 非静态方法。返回 String或一个或多个字符在此字符串中的第一个匹配项的索引Insert 非静态方法。在该 String中的指定索引位置插入一个指定的 StringRemove 非静态方法。从该 String中删除指定个数的字符Replace 非静态方法。将该 String中的指定 String的所有匹配项替换为其他指定的 StringSplit 非静态方法。返回包含该 String中的子字符串(由指定 Char或 String数组的元素分隔)的 String数组Substring 非静态方法。从此字符串中检索子字符串ToLower 非静态方法。返回该 String转换为小写形式的副本ToUpper 非静态方法。返回该 String转换为大写形式的副本Trim 非静态方法。从此字符串的开始位置和末尾移除一组指定字符的所有匹配项串的基本概念l 空串:不含任何字符的串称为空串l 空格串:由一个或多个空格组成的串,称为空格串。l 串相等:是指两个串的长度相等且对应的字符相等。l 模式匹配:确定子串在主串中首次出现位置的运算。l 子串:串中任意个连续的字符组成的子序列称为该 串的子串。l 主串:包含子串的串称为该子串的主串。7.1.1 静态字符串 String( 1) Compare方法 Compare方法是 String类的静态方法,用于全面比较两个字符串对象。 下面使用 Compare方法来比较两个字符串,输出结果如注释语句所示。 /定义两个 String对象,并对其赋值 System.String strA=“Hello“; System.String strB=“World“; * 7 C#程序设计实用教程7.1.1 静态字符串 String/Compare Console.WriteLine(String.Compare(strA,strB);/-1 Console.WriteLine(String.Compare(strA,strA);/0 Console.WriteLine(String.Compare(strB,strA);/1 * 8 C#程序设计实用教程7.1.1 静态字符串 String( 2) CompareTo方法 CompareTo方法将当前字符串对象与另一个对象做比较,其作用与 Compare类似,返回值也相同。 CompareTo与 Compare相比,区别在于: CompareTo不是静态方法,可以通过一个 String对象调用; CompareTo没有重载形式,只能按照大小写敏感方式比较两个整串。 * 9 C#程序设计实用教程7.1.1 静态字符串 String CompareTo方法的使用如下代码所示: /定义两个 String对象,并对其赋值 System.String strA=“Hello“; System.String strB=“World“; /CompareTo Console.WriteLine(strA.CompareTo(strB); /-1 * 10 C#程序设计实用教程7.1.1 静态字符串 String( 3) Equals方法 Equals方法用于方便地判定两个字符串是否相同,有两种重载形式: public bool Equals(string) public static bool Equals(string,string) 如果两个字符串相等, Equals()返回值为 True;否则,返回 False。 Equals方法的使用如下代码所示: /Equals Console.WriteLine(String.Equals(strA,strB); /false Console.WriteLine(strA.Equals(strB); /false * 11 C#程序设计实用教程7.1.1 静态字符串 String( 4)比较运算符 String支持两个比较运算符 “=”、 “!=”,分别用于判定两个字符是否相等和不等,并区分大小写。 下例中,使用 “=”、 “!=”对 “Hello”和 “World”进行比较。 /=和 != Console.WriteLine(strA=strB); /false Console.WriteLine(strA!=strB);/true* 12 C#程序设计实用教程7.1.1 静态字符串 String2. 定位字符和子串 定位子串是指在一个字符串寻找其中包含的子串或者某个字符,在 String类中,常用的定位子串和字符的方法包括 StartWith/EndsWith、 IndexOf/LastIndexOf以及IndexOfAny/LastIndexOf。 * 13 C#程序设计实用教程7.1.1 静态字符串 String( 1) StartWith/EndsWith方法 StartWith方法可以判定一个字符串对象是否以另一个子字符串开头,如果是返回 True;否则返回 False。 其定义为: public bool StartsWith(string value) 其中,参数 value即待判定的子字符串。 /StartWith Console.WriteLine(strA.StartsWith(“He“);/true Console.WriteLine(strA.StartsWith(“She“);/false 另外, EndsWith方法可以判定一个字符是否以另一个子字符串结尾。 * 14 C#程序设计实用教程7.1.1 静态字符串 String( 2) IndexOf/LastIndexOf方法 IndexOf方法用于搜索一个字符串,某个特定的字符或子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以计数。如果字符串中不包含这个字符或子串,则返回 -1。 定位字符: int IndexOf(char value) int IndexOf(char value,int startIndex) int IndexOf(char value,int startIndex,int count) * 15 C#程序设计实用教程7.1.1 静态字符串 String 定位子串: int IndexOf(string value) int IndexOf(string value,int startIndex) int IndexOf(string value,int startIndex,int count) 在上述重载形式中,其参数含义如下: Value:待定位的字符或者子串。 startIndex:在总串中开始搜索的起始位置。 Count:在总串中从起始位置开始搜索的字符数。 * 16 C#程序设计实用教程7.1.1 静态字符串 String 下例在 “Hello”中寻找字符 “l”第一次出现的位置。 /Indexof Console.WriteLine(strA.IndexOf(l); /2 同 IndexOf类似, LastIndexOf用于搜索在一个字符串中,某个特定的字符或子串最后一次出现的位置,其方法定义和返回值都与 IndexOf相同。* 17 C#程序设计实用教程7.1.1 静态字符串 String( 3) IndexOfAny/LastIndexOfAny IndexOfAny方法功能同 IndexOf类似,区别在于,可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。* 18 C#程序设计实用教程7.1.1 静态字符串 String 下例在 “Hello”中寻找字符 “l”第一次和最后一次出现的位置。 /IndexofAny|LastIndexOfAny char anyOf=H,e,l; Console.WriteLine(strA.IndexOfAny(anyOf); /0 Console.WriteLine(strA.LastIndexOfAny(anyOf); /3 同 IndexOfAny类似, LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。 * 19 C#程序设计实用教程7.1.1 静态字符串 String3. 格式化字符串 Format方法用于创建格式化的字符串以及连接多个字符串对象。 Foramt方法也有多个重载形式,最常用的为: public static string Format(string format,params object args); 其中,参数 format用于指定返回字符串的格式,而 args为一系列变量参数。* 20 C#程序设计实用教程7.1.1 静态字符串 String/Format newStr=“; newStr=String.Format(“0,1!“,strA,strB); Console.WriteLine(newStr); /Hello,World! 在 format参数中包含一些用大括号括起来的数字,如 0、 1,这些数字分别一一对应于 args参数数组中的变量。在生成结果字符串时,将使用这些变量代替 i。需要说明的是,这些变量并不要求必须为 String类型。 * 21 C#程序设计实用教程7.1.1 静态字符串 String 例如,想要输出一定格式的时间字符串,便可以使用 Format方法,如下面代码所示。 newStr=String.Format(“CurrentTime=0:yyyy-MM-dd“,System.DateTime.Now); Console.WriteLine(newStr); /形如: 2008-09-19 其中,格式字符串 “yyyy-MM-dd”指定返回时间的格式形如 “2008-09-19”。 * 22 C#程序设计实用教程7.1.1 静态字符串 String4. 连接字符串( 1) Concat方法 Concat方法用于连接两个或多个字符串 /Concat newStr=“; newStr=String.Concat(strA,“ “,strB); Console.WriteLine(newStr); /“Hello World“ * 23 C#程序设计实用教程7.1.1 静态字符串 String( 2) Join方法 Join方法利用一个字符数组和一个分隔符串构造新的字符串。常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。 Join方法的常用形式为: public static string Join(string separator,string values); 其中,参数 separator为指定的分隔符,而 values用于指定所要连接的多个字符串数组。* 24 C#程序设计实用教程7.1.1 静态字符串 String 下例用 “”分隔符把 “Hello”和 “World”连起来。 /Join newStr=“; String strArr=strA,strB; newStr=String.Join(“,strArr); Console.WriteLine(newStr); /“HelloWorld“ * 25 C#程序设计实用教程7.1.1 静态字符串 String( 3)连接运算符 “+” String支持连接运算符 “+”,可以方便地连接多个字符串。 例如,下例把 “Hello”和 “World”连接起来。 /+ newStr=“; newStr=strA+strB; Console.WriteLine(newStr); /“HelloWorld“ * 26 C#程序设计实用教程7.1.1 静态字符串 String5. 分隔字符串 使用 Split方法可以把一个整串,按照某个分隔符,分裂成一系列小的字符串。 例如,把整串,按照某个分隔符,分裂成一系列小的字符串。例如,把整串 “HelloWorld”按照字符 “”进行分裂,可以得到 3个小的字符串,即 “Hello”、 “”(空串)和 “World”。 Split方法最常用的形式为: public string Split(params char separator); 其中,参数 separator数组包含分隔符。* 27 C#程序设计实用教程7.1.1 静态字符串 String/Split newStr=“HelloWorld“; char separato
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爆破区域搬迁方案范本
- 东莞防滑地坪施工方案
- 木材防潮处理方案范本
- 升降机顶升施工方案
- 惠州经济职业技术学院《教育测量》2023-2024学年第二学期期末试卷
- 洛阳师范学院《建筑构造技术》2023-2024学年第一学期期末试卷
- 浙江科技学院《英语泛读(1)》2023-2024学年第二学期期末试卷
- 郑州经贸学院《遥感原理与方法》2023-2024学年第二学期期末试卷
- 咸宁职业技术学院《实验室安全教育》2023-2024学年第二学期期末试卷
- 上海中医药大学《西方文化导论及经典文本》2023-2024学年第二学期期末试卷
- 远离手机班会课件
- 一页纸的劳动合同范本(5篇)
- Q∕GDW 12151-2021 采用对接装置的输电线路流动式起重机组塔施工工艺导则
- 高速铁路知识PPT通用PPT课件
- 2019最新中小学校安全管理制度汇编
- 内审不符合项报告
- 铝合金门窗工程监理质量控制图册
- MyPowerS3100系列以太网交换机配置手册V4.0
- 吹灰器检修三措两案
- 点击下载视力残疾标准和评定方法(马胜生) - 广州市残疾人联合会
- ROHS等有害物质削减计划
评论
0/150
提交评论