您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第7章 常用数据结构与算法
第7章常用数据结构2010-9-25数据结构和算法是程序设计的基石。本章重点讲述C#中的几个主要的数据结构类型:字符串、数组和枚举。2020/2/112C#程序设计实用教程7.1字符串•字符串是应用程序和用户交互的主要方式之一。•.NET提供了几个类来快速实现字符串操作,包括String、StringBuilder等。2020/2/113C#程序设计实用教程7.1.1静态字符串StringSystem.String是最常用的字符串操作类。下面从各个应用的角度对String类进行详细的介绍。1.比较字符串2.定位字符和字串3.格式化字符串4.分割字符串5.插入和填充字符串6.删除和剪切字符串7.复制字符串8.更换字符串9.更改大小写2020/2/114C#程序设计实用教程1.比较字符串1.比较字符串比较字符串是指按照字典排序规则,判定两个字符的相对大小。在String类中,常用的比较字符串的方法包括1.Compare2.CompareTo3.CompareOrdinal4.Equals7.1.1静态字符串String(1)Compare方法Compare方法是String类的静态方法,用于全面比较两个字符串对象。例:System.StringstrA=Hello;System.StringstrB=World;Console.WriteLine(String.Compare(strA,strB));//-1Console.WriteLine(String.Compare(strA,strA));//0Console.WriteLine(String.Compare(strB,strA));//12020/2/116C#程序设计实用教程7.1.1静态字符串String(2)CompareTo方法CompareTo方法将当前字符串对象与另一个对象做比较,其作用与Compare类似,返回值也相同。CompareTo与Compare相比,区别在于:CompareTo不是静态方法,没有重载形式,只能按照大小写敏感方式比较两个整串。例:System.StringstrA=Hello;System.StringstrB=World;Console.WriteLine(strA.CompareTo(strB));//-12020/2/117C#程序设计实用教程7.1.1静态字符串String(3)Equals方法Equals方法用于方便地判定两个字符串是否相同,有两种重载形式:publicboolEquals(string)publicstaticboolEquals(string,string)如果两个字符串相等,Equals()返回值为True;否则,返回False。Console.WriteLine(String.Equals(strA,strB));//falseConsole.WriteLine(strA.Equals(strB));//false2020/2/118C#程序设计实用教程7.1.1静态字符串String(4)比较运算符String支持两个比较运算符“==”、“!=”,分别用于判定两个字符是否相等和不等,并区分大小写。下例中,使用“==”、“!=”对“Hello”和“World”进行比较。//==和!=Console.WriteLine(strA==strB);//falseConsole.WriteLine(strA!=strB);//true2020/2/119C#程序设计实用教程7.1.1静态字符串String2.定位字符和子串定位子串是指在一个字符串寻找其中包含的子串或者某个字符,在String类中,常用的定位子串和字符的方法包括:StartWith/EndsWith、IndexOf/LastIndexOfIndexOfAny/LastIndexOf。2020/2/1110C#程序设计实用教程2.定位字符和子串7.1.1静态字符串String(1)StartWith/EndsWith方法StartWith方法可以判定一个字符串对象是否以另一个子字符串开头,如果是返回True;否则返回False。其定义为:publicboolStartsWith(stringvalue)其中,参数value即待判定的子字符串。//StartWithConsole.WriteLine(strA.StartsWith(He));//trueConsole.WriteLine(strA.StartsWith(She));//false另外,EndsWith方法可以判定一个字符是否以另一个子字符串结尾。2020/2/1111C#程序设计实用教程7.1.1静态字符串String(2)IndexOf/LastIndexOf方法IndexOf方法用于搜索一个字符串,某个特定的字符或子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。定位字符:intIndexOf(charvalue)intIndexOf(charvalue,intstartIndex)intIndexOf(charvalue,intstartIndex,intcount)2020/2/1112C#程序设计实用教程7.1.1静态字符串String定位子串:intIndexOf(stringvalue)intIndexOf(stringvalue,intstartIndex)intIndexOf(stringvalue,intstartIndex,intcount)在上述重载形式中,其参数含义如下:Value:待定位的字符或者子串。startIndex:在总串中开始搜索的起始位置。Count:在总串中从起始位置开始搜索的字符数。2020/2/1113C#程序设计实用教程7.1.1静态字符串String下例在“Hello”中寻找字符“l”第一次出现的位置。//IndexofConsole.WriteLine(strA.IndexOf('l'));//2同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同。2020/2/1114C#程序设计实用教程7.1.1静态字符串String(3)IndexOfAny/LastIndexOfAnyIndexOfAny方法功能同IndexOf类似,区别在于,可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。2020/2/1115C#程序设计实用教程7.1.1静态字符串String下例在“Hello”中寻找字符“l”第一次和最后一次出现的位置。char[]anyOf={'H','e','l'};Console.WriteLine(strA.IndexOfAny(anyOf));//0Console.WriteLine(strA.LastIndexOfAny(anyOf));//3同IndexOfAny类似,LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。2020/2/1116C#程序设计实用教程7.1.1静态字符串String3.格式化字符串Format方法用于创建格式化的字符串以及连接多个字符串对象。Foramt方法也有多个重载形式,最常用的为:publicstaticstringFormat(stringformat,paramsobject[]args);其中,参数format用于指定返回字符串的格式,而args为一系列变量参数。2020/2/1117C#程序设计实用教程3.格式化字符串7.1.1静态字符串StringnewStr=;newStr=String.Format({0},{1}!,strA,strB);Console.WriteLine(newStr);//Hello,World!在format参数中包含一些用大括号括起来的数字,如{0}、{1},这些数字分别一一对应于args参数数组中的变量。在生成结果字符串时,将使用这些变量代替{i}。需要说明的是,这些变量并不要求必须为String类型。2020/2/1118C#程序设计实用教程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”。2020/2/1119C#程序设计实用教程7.1.1静态字符串String4.连接字符串(1)Concat方法•Concat方法用于连接两个或多个字符串newStr=;newStr=String.Concat(strA,,strB);Console.WriteLine(newStr);//“HelloWorld2020/2/1120C#程序设计实用教程4.连接字符串7.1.1静态字符串String(2)Join方法Join方法利用一个字符数组和一个分隔符串构造新的字符串。常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。Join方法的常用形式为:publicstaticstringJoin(stringseparator,string[]values);其中,参数separator为指定的分隔符,而values用于指定所要连接的多个字符串数组。2020/2/1121C#程序设计实用教程7.1.1静态字符串String•下例用“^^”分隔符把“Hello”和“World”连起来。//JoinnewStr=;String[]strArr={strA,strB};newStr=String.Join(^^,strArr);Console.WriteLine(newStr);//Hello^^World2020/2/1122C#程序设计实用教程7.1.1静态字符串String(3)连接运算符“+”String支持连接运算符“+”,可以方便地连接多个字符串。例如,下例把“Hello”和“World”连接起来。//+newStr=;newStr=strA+strB;Console.WriteLine(newStr);//HelloWorld2020/2/1123C#程序设计实用教程7.1.1静态字符串String5.分隔字符串•使用Split方法可以把一个整串,按照某个分隔符,分裂成一系列小的字符串。•例如,把整串,按照某个分隔符,分裂成一系列小的字符串。例如,把整串“Hello^^World”按照字符“^”进行分裂,可以得到3个小的字符串,即“Hello”、“”(空串)和“World”。•Split方法最常用的形式为:publicstring[]Split(paramschar[]separator);•其中,参数separator数组包含分隔符。2020/2/1124C#程序设计实用教程7.1.1静态字符串String//SplitnewStr=Hello^^World;char[]separator={'^'};String[]splitStrings=newString[100];splitStrings=newStr.Split(separator);inti=0;while(isplitStrings.Length){Console.WriteLine(item{0}:{1},i,splitStrings[i]);i++;}输出结果如下:Item0:HelloItem1:Item2:World2020/2/1125C#程序设计实用教程7.1.1静态字符串Stri
本文标题:第7章 常用数据结构与算法
链接地址:https://www.777doc.com/doc-3650924 .html