第5章常用数据结 构与 算法

上传人:w****i 文档编号:91142224 上传时间:2019-06-26 格式:DOC 页数:27 大小:113KB
返回 下载 相关 举报
第5章常用数据结 构与 算法_第1页
第1页 / 共27页
第5章常用数据结 构与 算法_第2页
第2页 / 共27页
第5章常用数据结 构与 算法_第3页
第3页 / 共27页
第5章常用数据结 构与 算法_第4页
第4页 / 共27页
第5章常用数据结 构与 算法_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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

1、第5章 常用数据结构与算法5.1 字符串字符串(string)类型直接从object类派生,它是被密封的,不能再有派生类。5.1.1字符串类型定义1. 定义2. 两种字符串:(1) 规则字符串:由包含在双引号中的零个或多个字符组成,并且可以包含简单转义序列、十六进制转义序列、Unicode转义序列。如:”hello”(2) 逐字字符串:由后跟双引号字符、零个或多个字符组成。如:”hello”区别:规则字符串要对字符串中的转义序列进行解释逐字字符串除了对双引号进行解释之外,对其他字符,原样显示。例如:string str1;/定义字符串类型 string str2=”hello,word”/规则

2、字符串hello,wordstring str3=”hello,word”/逐字字符串hello,wordstring str4=”hellotword”/规则字符串hellowordstring str5=”hellotword”/逐字字符串hellotword5.1.2 字符串类型的应用1判断一个字符串的长度在C#中,字符串类型有一个Length属性,利用它可得到一个字符串变量或一个字符串常量的长度。例如:string str=”abcdefghijk”;/ str变量中的串由11个字符组成Console.WriteLine(str.Length); /str变量的长度为11Console

3、.WriteLine(”abcdefghijk”.Length);/直接取串的长度为112.比较两个字符串是否相等C#直接重载了”=”和”!=”两个运算符处理两个字符串是否相等。在C#中,字符串相等的条件:两个字符串都为空串(null)或两个字符串实例长度相同,并且每个字符位置中的字符都相同。例如:string str1=”abcdefghijk”;string str2=”abcdefghijk”;Console.WriteLine(str1=str2); /str1和str2相等,得到真值true3.字符串的连接直接使用”+”运算符.string str1=”abcde”;str1+=”f

4、ghijk”;Console.WriteLine(str1); /str1的值为”abcdefghijk”4.在字符串中插入另一字符串使用字符串类的Insert方法。该方法的参数有两个,前一个参数是新字符串要插入的位置,后一个参数是要插入的字符串。例如:string str1=”good morning!”;string str2=str1.Insert(1,”Hi,”)Console.WriteLine(str2); / str2的值为” Hi, good morning!”5.字符串替换使用字符串类的Replace方法。该方法的参数有两个,前一个参数是要被替换的字符串,后一个参数是要替换的

5、字符串。例如:string str1=”Hello, good morning!”;string str2=str1.Replace(“ello”,”i,”);/”ello”被替换为”i”Console.WriteLine(str2); / str2的值为” Hi, good morning!”6.提取子串使用字符串类的Substring方法。该方法的参数有两个,前一个参数指出从第几个位置开始截取,后一个参数指出共提取几个字符。using System;class Test public static void Main() string str1=” Hi,good morning!”;in

6、t i;string str2;for(i=0;istr1.Length;i+)str2=str1.Substring(i,1);/从str1中第i个位置开始取一个字符Console.Write(“0”,str2);运行结果:Hi,good morning!7. 字符串的大小写转换使用字符串类的ToUpper方法和ToLower方法可以分别把一个字符串的所有字符都变成大写或小写。例如:using System;class Test public static void Main() string str1=” Hi,good morning!”;string str2=str1.ToUpper

7、();/将str1中的所有字符变成大写Console.WriteLine(str2); str2=str1.ToLower(); /将str1中的所有字符变成小写Console.WriteLine(str2);运行结果: HI,GOOD MORNING!hi,good morning!8.去掉字符串两边的空格可使用Trim方法去掉前导空格和后缀空格。但不能去掉字符串第一个非空格字符和最后一个非空格字符之间的空格。例如:string str1=” Hello”;string str2=str1.Trim(); /去掉str1的前导空格Console.WriteLine(str2); / str2

8、的值为”Hello”9.访问字符串中的字符字符串是以“0”结束的字符序列。从内存的角度看,字符串就是一个字符数组。可以通过数组的方式访问字符串中的单个字符。例如:string myString=”String is made of Character Array.”; /*字符变量chFirst的内容是字符串myString的第一个字符”S”*/char chFirst= myString0; /字符串用字符的数组表示/*字符变量chLast的内容是字符串myString的最后一个字符”.”*/char chLast= myStringmyString.Length-1;例题1(P118):u

9、sing System;class Test public static int Main() string UserName,Password; int i; bool Allow=false; for(i=0;i3;i+) Console.Write(“请输入用户名: ”); UserName=Console.ReadLine(); Console.Write(“请输入口令: ”); Password=Console.ReadLine(); if( UserName.Trim().ToLower()=”admin”Password=”123456”) Allow=true; break;e

10、lseif(i2) Console.WriteLine(“你输入的用户名或密码不正确,请重新输入。 ”); /for结束if(Allow=false) Console.WriteLine(“非法用户,不能进入系统。 ”); return 1;else Console.WriteLine(“你好,欢迎进入系统。 ”); return 0;例题2(P120):略 52 数组数组类型是从系统抽象类System.Array中派生而来的引用型数据。C#中的数组下标(又称索引)是从0开始的。在数组中,每一个成员叫数组元素,所有数组元素具有相同的数据类型。5.2.1数组的定义C#中的数组维数被称为秩(Ran

11、k),数组的秩直接决定了数组的下标数。如果一个数组的秩为1,则该数组为一维数组,如果一个数组的秩大于1,则该数组为多维数组。在数组中数组元素的个数,叫这个维中的数组长度。无论是一维数组还是多维数组,其下标都从0开始,结束于这个维的长度减1。数组定义的格式:数组类型修饰符 数组名=new 数组类型 数组元素初始化列表;例如:1. int arr=new int3;/* 一维数组arr长度为3,arr0,arr1,arr2 各数组元素被初始化为默认值0 */等价于:int arr;arr=new int3;2. 必须使用常量(可以是直接常量)定义数组的大小。例如:int const ArrayLe

12、ngth=5;int myArray=new intArrayLength;/ 定义一维数组myArray长度为53.在定义时对数组元素初始化,这时就不用再指出数组的大小,系统自动把初始化列表中的元素个数作为数组的长度。例如:string arrLanguages=new string”c”,”c+”,”c#”;还可写为:string arrLanguages= ”c”,”c+”,”c#”;4.int, arr=new int5,3; / 定义二维数组arr,长度为155.int, arr=0,1,2,3,4,5;等价于int, arr=new int3,2;arr0,0=0; arr0,1=

13、1;arr1,0=2;arr1,1=3;arr2,0=4;arr2,1=5;注意:数组越界和类型溢出在运行时才会被发现。5.2.2 数组的使用1.一维数组的使用例如:对用户输入的一个字符串,统计其中每个字母再现的次数。假设不区分大小写。(P123)namespace 字母个数class Class1static void Main(string args)int CharNum=new int26;/定义数组,用于26个字母计数int Other;/记录除字母之外的任意字符的个数int i;/循环控制变量char temp;/临时变量string strTest;/要检测的字符串for(i=0;i26;i+)CharNumi=0; /CharNum数组元素均赋初值0Other=0;Console.WriteLine(请输入要统计的字符串:);strTest=Console.ReadLine();strTest=strTest.ToUpper();/转成大写字母,便于统计Console.WriteLine(字符 出现的次数);for(i=0;i=A & temp=Z)CharNumtemp-A+;/相应字母计数加1elseOther+;for(i=0;i26;i+)if(CharNu

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

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

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