c 常用数据结构与算法1

上传人:aa****6 文档编号:55377206 上传时间:2018-09-28 格式:PPT 页数:166 大小:7.56MB
返回 下载 相关 举报
c 常用数据结构与算法1_第1页
第1页 / 共166页
c 常用数据结构与算法1_第2页
第2页 / 共166页
c 常用数据结构与算法1_第3页
第3页 / 共166页
c 常用数据结构与算法1_第4页
第4页 / 共166页
c 常用数据结构与算法1_第5页
第5页 / 共166页
点击查看更多>>
资源描述

《c 常用数据结构与算法1》由会员分享,可在线阅读,更多相关《c 常用数据结构与算法1(166页珍藏版)》请在金锄头文库上搜索。

1、第7章 常用数据结构与算法,数据结构和算法是程序设计的基石。 本章重点讲述C#中的几个主要的数据结构类型:字符串、数组和枚举。 本章还将介绍一些常用算法,如几种典型排序算法的C#实现。,2018/9/28,2,C#程序设计实用教程,7.1 字符串,字符串是应用程序和用户交互的主要方式之一。.NET提供了几个类来快速实现字符串操作,包括String、StringBuilder等。,2018/9/28,3,C#程序设计实用教程,7.1.1 静态字符串String,System.String是最常用的字符串操作类。下面从各个应用的角度对String类进行详细的介绍。 1. 比较字符串 比较字符串是指

2、按照字典排序规则,判定两个字符的相对大小。 在String类中,常用的比较字符串的方法包括Compare、CompareTo、CompareOrdinal以及Equals。,2018/9/28,4,C#程序设计实用教程,串的基本概念,空串:不含任何字符的串称为空串 空格串:由一个或多个空格组成的串,称为空格串。 串相等:是指两个串的长度相等且对应的字符相等。 模式匹配:确定子串在主串中首次出现位置的运算。 子串:串中任意个连续的字符组成的子序列称为该 串的子串。 主串:包含子串的串称为该子串的主串。,7.1.1 静态字符串String,(1)Compare方法 Compare方法是String

3、类的静态方法,用于全面比较两个字符串对象。 下面使用Compare方法来比较两个字符串,输出结果如注释语句所示。 /定义两个String对象,并对其赋值 System.String strA=“Hello“; System.String strB=“World“;,2018/9/28,7,C#程序设计实用教程,7.1.1 静态字符串String,/Compare Console.WriteLine(String.Compare(strA,strB); /-1 Console.WriteLine(String.Compare(strA,strA); /0 Console.WriteLine(St

4、ring.Compare(strB,strA); /1,2018/9/28,8,C#程序设计实用教程,7.1.1 静态字符串String,(2)CompareTo方法 CompareTo方法将当前字符串对象与另一个对象做比较,其作用与Compare类似,返回值也相同。 CompareTo与Compare相比,区别在于: CompareTo不是静态方法,可以通过一个String对象调用; CompareTo没有重载形式,只能按照大小写敏感方式比较两个整串。,2018/9/28,9,C#程序设计实用教程,7.1.1 静态字符串String,CompareTo方法的使用如下代码所示: /定义两个St

5、ring对象,并对其赋值 System.String strA=“Hello“; System.String strB=“World“; /CompareTo Console.WriteLine(strA.CompareTo(strB); /-1,2018/9/28,10,C#程序设计实用教程,7.1.1 静态字符串String,(3)Equals方法 Equals方法用于方便地判定两个字符串是否相同,有两种重载形式: public bool Equals(string) public static bool Equals(string,string) 如果两个字符串相等,Equals()返回

6、值为True;否则,返回False。Equals方法的使用如下代码所示: /Equals Console.WriteLine(String.Equals(strA,strB); /false Console.WriteLine(strA.Equals(strB); /false,2018/9/28,11,C#程序设计实用教程,7.1.1 静态字符串String,(4)比较运算符 String支持两个比较运算符“=”、“!=”,分别用于判定两个字符是否相等和不等,并区分大小写。 下例中,使用“=”、“!=”对“Hello”和“World”进行比较。 /=和!= Console.WriteLine

7、(strA=strB); /false Console.WriteLine(strA!=strB); /true,2018/9/28,12,C#程序设计实用教程,7.1.1 静态字符串String,2. 定位字符和子串 定位子串是指在一个字符串寻找其中包含的子串或者某个字符,在String类中,常用的定位子串和字符的方法包括StartWith/EndsWith、IndexOf/LastIndexOf以及IndexOfAny/LastIndexOf。,2018/9/28,13,C#程序设计实用教程,7.1.1 静态字符串String,(1)StartWith/EndsWith方法 StartWi

8、th方法可以判定一个字符串对象是否以另一个子字符串开头,如果是返回True;否则返回False。 其定义为: public bool StartsWith(string value) 其中,参数value即待判定的子字符串。 /StartWith Console.WriteLine(strA.StartsWith(“He“);/true Console.WriteLine(strA.StartsWith(“She“);/false 另外,EndsWith方法可以判定一个字符是否以另一个子字符串结尾。,2018/9/28,14,C#程序设计实用教程,7.1.1 静态字符串String,(2)In

9、dexOf/LastIndexOf方法 IndexOf方法用于搜索一个字符串,某个特定的字符或子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以计数。如果字符串中不包含这个字符或子串,则返回-1。 定位字符: int IndexOf(char value) int IndexOf(char value,int startIndex) int IndexOf(char value,int startIndex,int count),2018/9/28,15,C#程序设计实用教程,7.1.1 静态字符串String,定位子串: int IndexOf(string value) in

10、t IndexOf(string value,int startIndex) int IndexOf(string value,int startIndex,int count) 在上述重载形式中,其参数含义如下: Value:待定位的字符或者子串。 startIndex:在总串中开始搜索的起始位置。 Count:在总串中从起始位置开始搜索的字符数。,2018/9/28,16,C#程序设计实用教程,7.1.1 静态字符串String,下例在“Hello”中寻找字符“l”第一次出现的位置。 /Indexof Console.WriteLine(strA.IndexOf(l); /2 同Index

11、Of类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同。,2018/9/28,17,C#程序设计实用教程,7.1.1 静态字符串String,(3)IndexOfAny/LastIndexOfAny IndexOfAny方法功能同IndexOf类似,区别在于,可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。,2018/9/28,18,C#程序设计实用教程,7.1.1 静态字符串String,下例在“Hello”中寻找字符“l”第一次和最后一次出现的位置。 /IndexofAny|LastI

12、ndexOfAny char anyOf=H,e,l; Console.WriteLine(strA.IndexOfAny(anyOf); /0 Console.WriteLine(strA.LastIndexOfAny(anyOf); /3 同IndexOfAny类似,LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。,2018/9/28,19,C#程序设计实用教程,7.1.1 静态字符串String,3. 格式化字符串 Format方法用于创建格式化的字符串以及连接多个字符串对象。 Foramt方法也有多个重载形式,最常用的为: publi

13、c static string Format(string format,params object args); 其中,参数format用于指定返回字符串的格式,而args为一系列变量参数。,2018/9/28,20,C#程序设计实用教程,7.1.1 静态字符串String,/Format newStr=“; newStr=String.Format(“0,1!“,strA,strB); Console.WriteLine(newStr); /Hello,World! 在format参数中包含一些用大括号括起来的数字,如0、1,这些数字分别一一对应于args参数数组中的变量。在生成结果字符串

14、时,将使用这些变量代替i。需要说明的是,这些变量并不要求必须为String类型。,2018/9/28,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”。,2018/9/28,22,C#程序设计

15、实用教程,7.1.1 静态字符串String,4. 连接字符串 (1) Concat方法 Concat方法用于连接两个或多个字符串 /Concat newStr=“; newStr=String.Concat(strA,“ “,strB); Console.WriteLine(newStr); /“Hello World“,2018/9/28,23,C#程序设计实用教程,7.1.1 静态字符串String,(2)Join方法 Join方法利用一个字符数组和一个分隔符串构造新的字符串。常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。 Join方法的常用形式为: public stati

16、c string Join(string separator,string values); 其中,参数separator为指定的分隔符,而values用于指定所要连接的多个字符串数组。,2018/9/28,24,C#程序设计实用教程,7.1.1 静态字符串String,下例用“”分隔符把“Hello”和“World”连起来。 /Join newStr=“; String strArr=strA,strB; newStr=String.Join(“,strArr); Console.WriteLine(newStr); /“HelloWorld“,2018/9/28,25,C#程序设计实用教程,7.1.1 静态字符串String,(3)连接运算符“+” String支持连接运算符“+”,可以方便地连接多个字符串。 例如,下例把“Hello”和“World”连接起来。 /+ newStr=“; newStr=strA+strB; Console.WriteLine(newStr); /“HelloWorld“,

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

当前位置:首页 > 大杂烩/其它

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