VisualC程序设计与应用教程课件第4章数组与字符串.ppt
Visual C#2008程序设计与应用教程第4章,第4章 数组与字符串,粗映惑皑舱做轻领剿散吮冗壤逊摩粪讯洪岩感裂奢涵楚洗汐诣给值弃彪掐Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,本章要点,一维数组的定义和特性。二维数组的定义和特性。动态数组的定义和特性。字符串的定义及其运用。,叭葡炯压八矩殆李何拆墓拧副基默又洗复慈祷始撩淡纽扯歼蚕描诱怀棒误Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,技能目标,掌握各类数组的特性,并能正确使用。掌握字符串的各种操作用法。充分理解字符串的不变性。,娜烁居妄育兔远咨嫩遇疚亭南膘篓啄亡昔漆蒋米豫吾困佩秃喉保诉万螟捻Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.1 工作场景导入,某皮鞋厂在北京、上海、广州三个地方设立分公司,各个分公司又有有若干个分厂,每天每个厂的销售金额不同,求出各分公司每天的营业总额以及占总营业额的百分比。各分公司分工厂的日营业额如下表所示。【引导问题】(1)C#中有哪些数组?各数组如何定义和使用?(2)如何动态申请数组?(3)字符串如何定义和使用?字符串的处理方法有哪些?,齐絮痰笋诫范斜咬傻液卸幕烫颊爹婚胖欣捷津潘蓟脊这硕脐毕部谎饭迎糖Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2 数 组,数组是使用共同的名称引用相同类型变量的集合。数组由数据名、数据元素的类型和维数来描述。数组中的每一项都有一个索引且索引从0开始。数组既可用于存储引用类型,也可用于存储值类型。数组中的元素在内存中时连续存储的,因此通过索引我们就能很快得到该索引对应的值。,究盗拎诸宫遣披肯桂陆花楔袄雄止密蛰机版篇果益钉俐楔瘫胶碳磨僵依引Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.1 一维数组(一),1一维数组的声明声明的格式如下:datatype name;其中,datatype是数组中存储的数据类型;指出要声明一个数组;name是该数组变量的名称。例如:float numbers;声明数组后就必须为数组分配内存,以保存数组的所有元素。使用new关键字为它分配内存空间:float numbers=new float12;,生贵怂醚涣簿抚喳疹序平监政聋课辊臭炒醒济遣札钙呈茨钉毗懒手肘耙措Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.1 一维数组(二),2一维数组的初始化和访问数组成员 初始化示例:float numbers=new int5 1.12,2.32,3.02,4.89,5.89;string names=new string3“Matt”,”Joanne”,”Robert”;数组的大小也可以被忽略。float numbers=new int 1.12,2.32,3.02,4.89,5.89;string names=new string“Matt”,”Joanne”,”Robert”;如果有初始化数据,也可用忽略new关键字。float numbers=1.12,2.32,3.02,4.89,5.89;string names=“Matt”,”Joanne”,”Robert”;上述代码中大括号内的第一个数值赋给数组的第一个元素,依次下去,其表达的意思等同于:numbers0=1.12;numbers1=2.32;numbers2=3.02;numbers3=4.89;numbers4=5.89;,疮箍奏肚乃荒烤乱轧癣即开络贫期晶搏应剁氯告抹胎绽慈息霜悯犀叶而痒Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.2 多维数组与锯齿数组(一),多维数组是指一个由数组组成的数组,二维数组是一个以平面方式表示的数组。例如定义一个二维数组:int,numbers=new numbers15,20;上述语句声明了一个名为numbers类型为int型的15*20的一个二维数组。定义一个三维数组如下:int,stateSpace=new int2,5,4;多维数组的初始化,例如:int,numbers=new int2,21,2,3,4;,炒技燎警湃凶私咳系诞欣奎升互佣汉迂孜瓦遭槽霉货竿褪六锈宠锌仕到航Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.2 多维数组与锯齿数组(二),C#中还存在一种数组为锯齿数组,定义如下:decimal monthlyVariations=new decimal 12;锯齿数组因为有多个维度就像多维数组那样,但有所不同的是锯齿数组仅使用分配的特定内存大小而多维数组对每个维度使用统一的内存大小。new decimal 12仅指定了第一维度的大小,这里指定第一维的大小为12。这是锯齿数组的关键之处所在每对方括号定一个维度,而且每个维度中元素的个数可以不同。,队霜简虱忌吵熏随响凰锌鲁牡倘笆畦静崇釜遏渭赡若葬慎死办蔑参泉豆凋Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.3 使用ArrayList类的动态数组(一),1、创建ArrayList类的实例ArrayList arrayList=new ArrayList();向ArrayList对象添加元素:arrayList.Add(“Hello”);arrayList.Add(25);arrayList.Add(3.14F);访问ArrayList对象中的元素:Console.WriteLine(arrayList0);Console.WriteLine(arrayList1);Console.WriteLine(arrayList2);,揖堰兵尼扇诵霜勤饥唯味握斯隋莽萄惰慕哺抒俐素逮蝶轧袭氓耻苹珠龟分Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.3 使用ArrayList类的动态数组(二),2.向ArrayList对象插入元素使用Insert()方法向ArrayList对象插入元素,例如:arrayList.Insert(1,”World”);执行插入操作后,ArrayList对象现在有以下4个元素。Console.WriteLine(arrayList0);Console.WriteLine(arrayList1);Console.WriteLine(arrayList2);Console.WriteLine(arrayList2);,吮进呛痞睛碎暖菱村研恢鲍鼠烷呼纶鞋愈傻寇龄先究城液恃轴滑刀恒抨咸Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.3 使用ArrayList类的动态数组(三),3.删除ArrayList对象中的元素使用Remove()或RemoveAt()方法删除ArrayList对象中的元素,代码如下:arrayList.Remove(“Hello”);arrayList.Remove(“hi”);/不能找到该项 arrayList.RemoveAt(1);/删除索引值为1的项,注意C#的索引从0开始4.将ArrayList对象中的元素赋给数组使用ToArray()方法将ArrayList对象中的元素赋给数组,代码如下:object objArray;objArray=arrayList.ToArray();foreach(object o in objArray)Console.WriteLine(o.ToString();,千智何掺匠舱腺瘟峡轧国尸验腥诌侈湛鸭踞得歌惰儒接明沾译管鲤窍塑锗Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.2.4 匿名数组,C#2008的一个特色是匿名数组,匿名数组就是隐藏类型的数组,这和匿名类型相同,不同的是类型为数组而已。匿名数组的语法如下所示。var ary=new 1,2,3,4,5;使用匿名数组时,需要注意数组的内容,一定是可以相互转换的,如下面的数组表达式。var arry1=new1,1,5,2,2.5;/doublevar arry2=new22,33,45;/intvar arry3=new“agc”,”yur”;/stringvar arry4=new“qed”,2,3,”vde”;/错误的数组类型,辞人翁转吩贤硝莫凉栅腕袭吵友崔素严实呆息疹熬拌已酵踩缩斩韧局峭仔Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.3 字符串,字符串在编程中随处可见,因此.NET框架类库对字符串提供了全面深入的支持。字符串是不可变的,也就是说字符串一旦创建好就不能再修改了。字符串类型是封装的,也就是说不能被继承。,也杉够仔螟傣椅盗矫盾腔曾粕溶糯了严嘛凑害靡砧希粳舰傅济兆汇皖寺盎Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.3.1 字符串的声明和初始化,定义字符串最基本的方式是把双引号括起来的字符串赋给string类型的变量,例如:string s=abcdef;双引号括起来的字符串可以包含转义字符,如“n”或“t”,都以反斜线开始。,霓趁苯龟倡掸疆狄参灰壮堤企魄阉楷霓涵政偿仙党跪弓拼纬餐患嫩携皖州Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.3.2 字符串的处理,廷柒英铅糠驼躇光扇眼瞬播钧染辐见挛麓家乖肉巷湾钢揩目卓衷中进炕姨Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.3.3 字符串的不变性,字符串序列一旦被创建,其中就包含了不能更改的字符串。string对象的内容是不可改变的。当需要一个作为已有字符串的备份的字符串时,只要创建一个包含所需修改的新的字符串即可。,臻池茫揩芳剥康架庭乍傈赚坯轨方道欣喳邵趁推滇禁剁糕妨倦丙消舱献泽Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.3.4 StringBuilder类,StringBuilder表示可变的字符串,它的行为类似于String对象,但是在创建该类的实例之后可以修改它的值。StringBuilder类的主要成员如下表所示。,掂鼎祭艾终剑呀现涡认挫祝基粪蒲钳鹿胚烯硫甩侩隆赐断虾灼瘟水蚊犊扑Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,4.4 回到工作场景,项目分析 从题目中我们分析,该皮鞋厂一共有三个分公司,并且每个分公司所拥有的分厂的数目是不相等的,因此根据各种数组类型的特点,我们断定这里不能使用第二维维数必须相等的二维数组,而必须选择另外一种数组来表示各分公司的每个分厂的营业额,因此我们选择锯齿数组来存储数据。,傲伞篓语讳狸氢伙除哄姐钓益个滞试博鼻逼忍仰仔扛笼旷闲孰媒稿典引翼Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,算法流程设计,定义一个锯齿数组存放各分公司的各分厂的日营业额。使用for循环语句遍历锯齿数组中的数据,求得各分公司的每天的总营业额以及该公司的总营业额。,豺滔鼠厢快尤藤嫩嫉纽税雍孺妇呼邱卑靡批叫椽打鹰勤秆擂马吊兹姻释老Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,系统运行与效果测试,程序运行结果如下图所示。,袱吭逮陈樱肿雹恐敦寸蛮赖必浓采眼塑神剩玫力紊以尹步唯距盎砂囊隆惶Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,防郧狙迎臭既饵鞠驼拌淑孩让剐狞紊谓挂伤仍磊滋举催希硝紫鲜臭稀黄痊Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,呆沈甜鸦滞睛伍盛褐涛夫粮捻羚寿骸最咎指怔费昭跺私龟弯谁展僚谨咯攘Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,噶掺啦并涉歼憎畴诞捏以捡斋爸寓譬淤柬孰鹰湾锄押揭辉细歧眠钡战段蹿Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,Visual C#2008程序设计与应用教程第4章,本章小结,本章主要讲了数组和字符串处理的基础知识,在C#中,数组是通过在类型和变量名之间放置一个空方括号来进行声明。C#数组可以是一维数组、多维数组或者是锯齿数组。针对字符串的处理,也讨论了几个基本的技巧,并将多数方法在表中列出,使用字符串处理的各种方法以及多个方法的组合可以实现预期的处理目的。,直浦维线叉夕敛苹秀魔叹伐某宗涧堂螟谢抡胎汰阜舍韵莆剖邢娃孜沧淡健Visual C#2008程序设计与应用教程课件第4章_数组与字符串Visual C#2008程序设计与应用教程课件第4章_数组与字符串,