第06讲 数组和字符串

上传人:熏** 文档编号:243135143 上传时间:2024-09-16 格式:PPT 页数:40 大小:1.63MB
返回 下载 相关 举报
第06讲 数组和字符串_第1页
第1页 / 共40页
第06讲 数组和字符串_第2页
第2页 / 共40页
第06讲 数组和字符串_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,10,讲 数组和字符串,余正红,wtuyzh,C#,中的一维数组,回顾:为什么要使用数组?,如何声明一维数组?,声明数组的方法,Java,C#,int, arr1;,/,数据类型, ,数组名,;,int,arr1 ;,/,数据类型 数组名, ;,在,C#,中声明数组:,数据类型, ,数组名,不能,将数组名放在数据类型和方括号之间!,一维数组初始化,如何设置大小及初始化?,/,使用,new,设置大小,/,创建长度为,5,的整型数组,int, array =,new,int,5;,/,创建的同时初始化,int, arr,=,new,int,50,1,2,3,4;,int, arr,=,new,int,0,1,2,3,4;,/,省略长度,int, arr,=,0,1,2,3,4;,/,省略,new,5,方括号中的数字决定数组的长度,0,1,2,3,4,大括号中的元素个数决定数组的长度,一维数组长度,获得数组的长度(元素的个数):,数组名,.Length,常作为循环的条件,演示示例,6,:,一维数组,/,循环打印数组元素,int, array = new int5 0, 1 ,2, 3, 4; /,声明并初始化一维数组,for (,int,i = 0; i ,array.Length;i,+ ) /,输出数组中的所有元素,Console.WriteLine(arrayi,);,常见错误,数组初始值的数目与数组的长度不一样,/,循环打印数组元素,int, array = new int5 0, 1 ,2; /,声明并初始化一维数组,for (,int,i = 0; i ,array.Length;i,+ ) /,输出数组中的所有元素,Console.WriteLine(arrayi,);,初始值的个数必须与数组的长度一样!,代码错误,小结,string, arr,3,;,arr,3,= new,string3,I,like,C#,;,int,arr,1 = new int3,;,int, ,arr,2 = new int31,2,;,int, ,arr,1,new int31,2,0,正误判断:,int, arr,4,= new,string3,;,类型应一致,冒泡排序,小游戏,请,5,位同学上台,在老师的指导下,,按照冒泡排序的算法按身高从低到高排序,冒泡排序,冒泡排序:,每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后,16,25,9,90,23,16,25,9,23,90,9,25,23,第一轮:比较了,4,次,第二轮:比较了,3,次,第三轮:比较了,2,次,第四轮:比较了,1,次,用二重循环实现冒泡排序,i = 0,i = 1,i = 2,i = 3,第一轮:比较了,4,次,第二轮:比较了,3,次,第三轮:比较了,2,次,第四轮:比较了,1,次,外层循环,如何用二重循环将,5,个数字排序?,N = 5,5,个数字存放在一维数组中,外层循环控制比较多少轮,循环变量,i,内层循环控制每轮比较多少次,循环变量,j,内层循环,循环,4,次,:,j 4,循环,3,次,:,j 3,循环,2,次,:,j 2,循环,1,次,:,j 1,i 4,i N-1,j ?,j 4-i,j N-1-i,用二重循环实现冒泡排序,代码框架:,演示示例,7,:,将5个学员成绩排序,,使用断点跟踪,for (i = 0; i ,N,-1,; i+),for (j = 0; j ,N,-1,-,i,; j+),/,比较,j,和,j+1,位置的元素,/,如果前大后小就交换,冒泡排序速记口诀,(升序):,N,个数字来排队,两两相比小靠前,外层循环,N-1,内层循环,N-1-i,冒泡排序,关键代码分析:,for (i = 0; i ,scores.Length,-1,; i+),for (j = 0; j scoresj + 1),/,交换元素,temp = scoresj;,scoresj = scoresj + 1;,scoresj + 1 = temp;,经过一轮比较交换,,最大的元素换到了最后面,外层循环终止条件:数组长度,-1,内层循环终止条件:,数组长度, 1 - i,示例,7,源代码,本章目标,掌握,C#,中方法的定义和使用,掌握,C#,中参数的传递方式,掌握常用的,String,类的方法,能够进行常用数据类型之间的转换,C#,中的命名空间,using,System;,using,System.Collections.Generic,;,using,System.Text,;,namespace,HelloACCP,class Program,static void,M,ain(string, args),/,系统定义的命名空间,自定义的命名空间,命名空间:,一种组织代码的方法,代码及内容唯一标识,引用命名空间,using System; /,引用,System,命名空间,namespace,HelloACCP,class Program,static void Main(string, args),Console.WriteLine(Hello,ACCP .N,ET,);,/,不引用,System,命名空间,/ using System;,namespace,HelloACCP,class Program,static void,M,ain(string, args),/,Console.WriteLine(Hello,ACCP .N,ET,);,System.,Console.WriteLine,(Hello ACCP .N,ET,);,如果不使用,using,,,要使用完全限定名称,WriteLine,(),方法的完全限定名称,使用,using,引用命名空间,示例,1,源代码,方法的基本概念,回顾:什么是方法?使用方法有什么好处?,类的行为,便于修改、增加可读性、可重用、封装,C#,中方法的定义形式:,访问修饰符 返回类型 方法名,(,参数列表,),/,方法的主体,public,private,int,double,string,void,命名规范:单词首字母大写,Pascal,命名法,参数传递与,Java,有所不同,参数的值传递方式,工资计税的方法为:低于等于,1600,不计税,超出,1600,的部分按,10%,缴税,int,pay; /,税前工资,float,taxRate,= 0.1f; /,税率,float,afterTax,; /,税后工资,Console.WriteLine,(,请输入税前工资,:,);,pay =,int.Parse(Console.ReadLine,();,if (pay = 1600) /,低于,1600,不缴税,afterTax,= pay;,else /,高于,1600,部分按税率缴税,afterTax,= pay - (pay - 1600) *,taxRate,;,Console.WriteLine,(,税前工资,0,,,税后工资,1, pay,afterTax,);,怎样用方法实现?,演示示例,2,:,自定义方法计算税后工资,示例,2,代码分析,关键代码回顾:,示例,2,源代码,/,此方法根据税前工资计算税后工资,private static float GetPay(,int pay, float taxRate,),float afterTax;,if (pay num2),return 1;,else if (num1 = num2),return 0;,else,return -1;,String,常用方法,C#,中常用的字符串处理方法:,Equals(),:比较两个字符串的值是否相等,Join(),:连接字符串,Split(),:分割字符串,IndexOf,(),:查找某个字符在字符串中的位置,SubString,(),:从字符串中截取子字符串,ToLower,(),:将字符串转换成小写形式,Trim(),:去掉字符串两边的空格,String,常用方法应用,1,已有如下代码,按要求增加功能:,static void,Main(string, ,args,),string email; /,电子邮件地址,Console.WriteLine,(,请输入你的邮箱,:,);,email =,Console.ReadLine,();,Console.WriteLine,(,你的邮箱是,0, email);,需实现的功能:,1,、,输入,yes,时,程序循环执行,2,、 兼容以下各种形式,yes,(,YES,、,yes,、,YeS,.,),3,、 提取邮箱的用户名,演示示例,4,:,String,常用方法,String,常用方法应用,2,输入一个字符串,输出每个单词,重新用下划线连接输出,使用,Split(),方法分割字符串,使用,Join(),方法连接字符串,演示示例,5,:,字符串的分割和连接,Split(),方法,分割字符串,示例,5,代码分析,splitStrings,=,inputString.Split,( );,/,将分割后的字符串使用下划线连接在一起,joinString,=,string,.Join,(_,splitStrings,);,返回值为,字符串数组,字符串变量名,参数:分隔符(,char,型),返回字符串,静态方法,参数,1,:连接符,参数,2,:字符串数组,关键代码回顾:,示例,5,源代码,Join(),方法,连接字符串,Format(),方法,回顾两种输出字符串的方式:,string name = ,王强,;,Console.WriteLine,(,我的名字是, + name + ,,,我的年龄是, + 18);,string name = ,王强,;,Console.WriteLine,(,我的名字是,0,,,我的年龄是,1 , name,18);,格式字符串,String,类的,Format(),方法用来格式化字符串,变量列表,演示示例,6,:,输出个人档案,示例,6,代码分析,关键代码回顾:,示例,6,源代码,record =,string.Format,(,姓名,:,0n,出生年月,:,1n,身高,:,2n,血型,:,3n,星座,:,4n,最喜欢的食物,:,5,name, birthday, height,bloodType, planet,favourFood,);,Console.WriteLine(n,这是你的个人档案,:,);,Console.WriteLine(record,);,参数与,WritLine,(),方法相似,Format(),的语法小结,string,myString,=,string,.Format,(,格式字符串,参数列表,);,string,myString,=,string.Format,(0,乘以,1,等于,2 , 2, 3, 2*3);,格式字符串,代表,参数列表,2,乘以,3,等于,6,包括占位符,x,小结,补充下划线处的占位符,输出五个成语,string,yi,= ,一,;,string,er,= ,二,;,string san = ,三,;,string word =,string.Format,(,独,_,无,_,,,_,心,_,意,,,垂涎,_,尺,,,略知,_ _,,,举,_,反,_,yi,er, san,);,Console.WriteLine(word,);,趣味编程:看谁写的巧!,参考答案,string,yi,= ,一,;,string,er,= ,二,;,string san = ,三,;,string word =,string.Format,(,独,0,无,1,,,2,心,1,意,,,垂涎,2,尺,,,略知,01,,,举,0,反,2,yi,er, san,);,Console.,WriteLine(word,);,为什么需要类型转换,编译器要确切地知道数据的类型,int,num =,123,;,整数,字符串,需要类型转换!,编译出错,怎样进行隐式类型转换,隐式转换:自动类型转换,float,int,规则:对于数值类型,,A,的,取值范围,完全包含在,B,内,A,B,static void Main(string, args),double score = 58.5; /,原始成绩,int,bonus,= 2; /,加分,int sum; /,总分,sum = score + bonus;,/,计算总分,Console.WriteLine(sum);,Console.ReadLine();,怎样进行显式类型转换,static void Main(string, args),double score = 58.5;,int,bonus,= 2;,int sum;,sum = (int)score + bonus;,Console.WriteLine(sum);,Console.ReadLine();,明确,告诉编译器转换类型,注意:,double (58.5)-,int,(58),,精度可能丢失!,显式转换:强制类型转换,使用,Parse(),进行转换,字符串和数值型的互相转换,int,float,double,string,i,nt.Parse,( ),float,.Parse,( ),d,ouble,.Parse,( ),ToString(),必须是数字的,有效表示形式!,使用,Convert,类进行转换,使用,Convert,:,Convert.ToXxx(object,value),Convert.ToInt32(,),Convert.ToSingle,(),Convert.ToString,(),double,85.63,string,85.63,int,86,float,85.63,演示示例,7,:,不同类型的相互转换,Parse,与,Convert,Xxx.Parse(string,),目标类型的有效表示形式,Convert.ToXxx(object,),:,注:,Xxx,表示某种类型,字符串,其他类型,任意类型,其他类型,小结,类型转换有几种方式?,string,myString,=,Hello,;,int,myInt,=,int.Parse(myString,);,double score =,59,.3;,int,myInt,= Convert.ToInt32 (score);,double score = 92.6;,string,myString,=,score.ToString,( );,错误!,字符串不是有效的整数形式,转换成功!,myString,为,92.6,转换成功,但精度丢失!,myInt,为,59,下面各种转换的结果是什么?,总结,自定义方法由哪几部分构成?,String,类的,Format(),方法的参数包括什么?,Parse(),与,Convert,分别把什么类型转为什么类型?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!