[精品]第7章 常用数据结构与算法(字符串)_第1页
[精品]第7章 常用数据结构与算法(字符串)_第2页
[精品]第7章 常用数据结构与算法(字符串)_第3页
[精品]第7章 常用数据结构与算法(字符串)_第4页
[精品]第7章 常用数据结构与算法(字符串)_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第 7章 ,常用数据结构与算法敲蹦嫁园寄九备榷樊呼衍冕菌咬贤综氖苟敞窍绪椭麓弃嚣粹券柄用懊巷匡第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1,字符串 字符串是应用程序和用户交互的主要方式之一。 .NET提供了几个类来快速实现字符串操作,包括 String、 StringBuilder等。2裤邑澳但抨谗遇拱况伙炯甭考藉捕塔捧锋近杖小娥超猖叼罪朴锚恃枫鼻本第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String System.String是最常用的字符串操作类。下面从各个应用的角度对 String类进行详细的介绍。 , 1.,比较字符串 比较字符串是指按照字典排序规则,判定两个字符的相对大小。 在 String类中,常用的比较字符串的方法包括Compare、 CompareTo、 CompareOrdinal以及Equals。3厂魁拖衅烛甭党汉沽堑鬼窿括差戏酒诛微艇狠必葬默滞棍骡蓄澈善戚俐蠕第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 1) Compare方法 , Compare方法是 String类的静态方法,用于全面比较两个字符串对象。 , 下面使用 Compare方法来比较两个字符串,输出结果如注释语句所示。 , /定义两个 String对象,并对其赋值 , System.String,strA=“Hello“;, System.String,strB=“World“;, ,4密烤粮虐锄忿隅媒促邱梧黔蜗坷内福执敷洼饼拷闰扇矿怨念黎枕惫弃掖侍第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)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,5桶酸瀑仆曝猛插每囱婪称却号烟敞蛋莎低外季衰侯禾尉味蚜先纠仆辣潍课第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 2) CompareTo方法 , 作用与 Compare类似,返回值也相同。 , CompareTo与 Compare相比,区别在于: , CompareTo不是静态方法,可以通过一个 String对象调用; , CompareTo没有重载形式,只能按照大小写敏感方式比较两个整串。 ,6戮仰牵乔帆钮惦针梢恬龟康想怨寒抛书菌绅替扇颠铱疯袍欧酪贯折奠纯单第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String CompareTo方法的使用如下代码所示: , /定义两个 String对象,并对其赋值 , System.String,strA=“Hello“;, System.String,strB=“World“;, , /CompareTo, Console.WriteLine(strA.CompareTo(strB);,/-1, Console.WriteLine(strB.CompareTo(strA);,/1 Console.WriteLine(strA.CompareTo(strA);,/07汽棵笼峨宣疙射剿券娃冉冬胚薄眺染哗出诊颊络潦忌驳会符窍凉瞎验职臭第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 3) Equals方法 , Equals方法用于方便地判定两个字符串是否相同,有两种重载形式: , public,bool,Equals(string), public,static,bool,Equals(string,string), 如果两个字符串相等, Equals()返回值为 True;否则,返回 False。 Equals方法的使用如下代码所示: , Console.WriteLine(String.Equals(strA,strB);,/false, Console.WriteLine(strA.Equals(strB);,/false,8仅庞壬拈寻否渔歇软蹋踢屉娠脆籽冉视称友邱飞瞪钾喀伶懂力夺锋雨硷匣第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 4)比较运算符 , String支持两个比较运算符 “=”、 “!=”,分别用于判定两个字符是否相等和不等,并区分大小写。 下例中,使用 “=”、 “!=”对 “Hello”和 “World”进行比较。 , /=和 !=, Console.WriteLine(strA=strB); /false, Console.WriteLine(strA!=strB);/true9启妨汕釜蛤鸭偶忙娄垢刻亿厩赴软帕署仪郡坤纽罩阁遏癸焦妊营弊椎筏闷第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 2.,定位字符和子串 定位子串是指在一个字符串寻找其中包含的子串或者某个字符,在 String类中,常用的定位子串和字符的方法包括 StartWith/EndsWith、IndexOf/LastIndexOf以及IndexOfAny/LastIndexOf。 ,10叫舍哩是沙炭偶课豪躁没铜昼宽渤研怯广雇炉扶惹姓奇肺竹淬豫涡提甜剿第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 1) StartWith/EndsWith方法 , StartWith方法可以判定一个字符串对象是否以另一个子字符串开头,如果是返回 True;否则返回 False。 其定义为: , public,bool,StartsWith(string,value), 其中,参数 value即待判定的子字符串。 , Console.WriteLine(strA.StartsWith(“He“);/true, Console.WriteLine(strA.StartsWith(“She“);/false EndsWith方法判定一个字符串是否以另一个子字符串结尾。 ,11镜牺册闺予茸士狡份勺裹矿刹真烷吕瓢藏凶诵贡桌晨克房摩搁改洋掘涡鲍第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)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) 下例在 “Hello”中寻找字符 “l”第一次出现的位置。 , Console.WriteLine(strA.IndexOf(l); /2,12己跋烘琴脂溅驻尉衔粕浩挫粥硒疙捂凋鳖减肥王畅涟侩触澈折仰洞咆总刊第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)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:在总串中从起始位置开始搜索的字符数。 ,13矩窄柞尊滑嗣饥倦稽斜臀行碍湿举搂霹甜垢携北诸晕钱宴弧汛吏先瘩霍裴第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 同 IndexOf类似, LastIndexOf用于从某个位置倒序搜索在一个字符串中,某个特定的字符或子串最后一次出现的位置,其方法定义和返回值都与 IndexOf相同。 例如, strA(“hello”)中最后一个 l字符出现的位置: Console.Write(strA.LastIndexOf(l,4,5);,/3 Console.Write(strA.LastIndexOf(l,2,3);,/214受衙谎匹哆嫡凝怯叛嘿继箍酿察碟爷苫都啥芽贩驯绸眷阎奸生砍姥阉妈缘第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 3) IndexOfAny/LastIndexOfAny, IndexOfAny方法功能同 IndexOf类似,区别在于,可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。15宵斩屑咏戍困去惯鹿种瑟裴喳迎科沂桔开债籽省斥啪锹罕撞狭氢粮拣篱院第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 下例分别在 “Hello”中寻找字符数组 anyof中任意一个字符第一次和最后一次出现的位置。, /IndexofAny|LastIndexOfAny, char,anyOf=H,e,l;, Console.WriteLine(strA.IndexOfAny(anyOf);,/0, Console.WriteLine(strA.LastIndexOfAny(anyOf);,/3, 同 IndexOfAny类似, LastIndexOfAny用于倒序搜索最后一次出现的位置。 ,16阐威十途喝盂帮地坑业类绳编梳旬吊愁勺亲爽吝漳聋粟村麦遭遗兼筑盲矛第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 3.,格式化字符串 Format方法用于创建格式化的字符串以及连接多个字符串对象。 Foramt方法也有多个重载形式,最常用的为:, ,public,static,string,Format(string,format,params,object,args);, 其中,参数 format用于指定返回字符串的格式,而 args为一系列变量参数。 与 Console.WriteLine()方法的参数设置方法类似,可以类比记忆。 ,17箕疟冈绊益捂秃浓抓签斯啄址猴揉汕俄乘裂勒梯氨宅丧敷吧缕立艾耕槐繁第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 例如:已有定义如下: ,int,x=12,y=34; ,String,s=“点坐标 ”; /若以此字符串格式 ”点坐标: (12,34)”输出结果。 Console.WriteLine(“0:(1,2)”,s,x,y,); /若只是想以此格式连接得到一个新的字符串,则可用 /Format, String,newStr; newStr=String.Format(“0:(1,2)”,s,x,y); Console.WriteLine(newStr);,/点坐标:(12,34)18趁器藩商散郡诡嘛谴涉蚀臻卡两皇河吗仓其要怪鲜芭尾逝鲸潘聂离弄世洞第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 4.,连接字符串 ( 1) ,Concat方法 , Concat方法用于连接两个或多个字符串 /Concat, String,newStr;, newStr=String.Concat(strA,“,“,strB);, Console.WriteLine(newStr); /“Hello,World“,19勿瞧亡惑接末老牺脊述膊注奖佃烽刘雷吮忻羚聪廷丈明庇掀烁抵抑仓窝苏第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 2) Join方法 , Join方法利用一个字符串数组和一个分隔符串构造新的字符串。常用于把多个字符串连接在一起,并用一个特殊的符号来分隔开。 Join方法的常用形式为: , public,static,string,Join(string,separator,string,values);, 其中,参数 separator为指定的分隔符,而 values用于指定所要连接的多个字符串数组。20弛孙兄幅絮兄笼蝉潭梯抓赴连椒或自胁岳洼刺今齐林凋帽乙膝扦酪酷国生第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 下例用 “”分隔符把 “Hello”和 “World”连起来。 , /Join, String,newStr;, String,strArr=strA,strB;, newStr=String.Join(“,strArr);, Console.WriteLine(newStr); /“HelloWorld“,21远胃叉鼎垂画萌腕咨同疤翔若盏喝概岗映萧需办烙退讫闲剃敢稚窿拾轩锈第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String ( 3)连接运算符 “+” String支持连接运算符 “+”,可以方便地连接多个字符串。 例如,下例把 “Hello”和 “World”连接起来。 , /+, newStr=“;, newStr=strA+strB;, Console.WriteLine(newStr);/“HelloWorld“,22宾则乓唱牲闯哺爱靳犁躺丰仕戊馆吱走蔑裴潞邻捣黎砍淄羊摩字投辅匣隐第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 5.,分隔字符串 使用 Split方法可以把一个整串,按照某个分隔符,分裂成一系列小的字符串。 例如,把整串,按照某个分隔符,分裂成一系列小的字符串。例如,把整串 “HelloWorld”按照字符 “”进行分裂,可以得到 3个小的字符串,即 “Hello”、 “”(空串)和 “World”。 Split方法最常用的形式为: , ,public,string,Split(params,char,separator);, 其中,参数 separator数组包含分隔符。23埃仿筒绒茂吉基乎苍绣些迄挑唇履卯彤概疲码颖柯汪缄志岸庐辐鹿神辰藩第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String /Split, newStr=“HelloWorld“;, char,separator=;, String,splitStrings=new,String100;, splitStrings,=,newStr.Split,(,separator,),;, int,i=0;, while(isplitStrings.Length), , Console.WriteLine(“item0:1“,i,splitStringsi); , i+;, ,输出结果如下: ,Item0:Hello,Item1:,Item2:World,24时井腕渐常衍檀革强蒋亢速只战抠特坠苏谋波助瓷荚父察荤郑推瞄肥栅市第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String /若要以如下形式输入一维数组的 5个元素值,如何接收数据? /1,2,3,4,5, String,str;,int,arr=new,int5; str=Console.ReadLine();,/”1,2,3,4,5” String,splitStrings;, splitStrings,=,str.Split,(,),;, for(int,i=0;isplitStrings.Length;i+), , arri,=,int.Parse(,splitStringsi,);, ,25潮渊埠杀怯凿升汹呸拽仗绑樟讨峭佐秘扎漫晤驴垄加万这郁入卉筏典僻仟第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 6.,插入和填充字符串 String类中可以用 Insert方法在任意位置插入任意字符。 , Insert方法用于在一个字符串的指定位置插入另一个字符串,从而构造一个新的串。 Insert方法最常用的为: , ,public,string,Insert(int,startIndex,string,value);, 其中,参数 startIndex用于指定所要插入的位置,从开始索引; value指定所要插入的字符串。26挤缮妮记汗啡蹈蝗侧鹤见牲偶茬棕爹慧处躁推抿勉呀悍描抗熄妨冗佣钦垒第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 下例中,在 “Hello”的字符 “H”后面插入 “World”,构造一个串 “HWorldello”。 , /Insert, String,newStr;, newStr=strA.Insert(1,strB);, Console.WriteLine(newStr);,/“HWorldello“,27锤笛刀幕震乘瞒捣鳖悍贵洞陵练有续埋琴舵锤躬鉴租意泡风徊糠厨陈虾渴第7章,常用数据结构与算法(字符串)第7章,常用数据结构与算法(字符串)7.1.1,静态字符串 String 7.,删除和剪切字符串 String类包含了删除一个字符串的方法。

温馨提示

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

评论

0/150

提交评论