我的数组、字符串与集合_第1页
我的数组、字符串与集合_第2页
我的数组、字符串与集合_第3页
我的数组、字符串与集合_第4页
我的数组、字符串与集合_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、大连外国语学院陶永鹏数组、字符串与集合6.1 数组数组:数组是一种数据结构,存储若干相同类型的数据数组是引用类型,使用时必须实例化,否则为 null要访问数组中的元素,可以使用索引,索引从 0 开始数组的分类:一维数组 type arr;多维数组 type, arr;交错数组 type arr;6.1.1 数组的声明1一维数组一维数组是以线性方式存储固定数目的项的数组。(1)一维数组的声明语法形式: type arrayName ;其中: type可以是C#中任意的数据类型。 表明后面的变量是一个数组类型,必须放在数组名之前。 arrayName是数组名,遵循标识符的命名规则。例如: int

2、a1; /a1是一个含有int类型数据的数组double f1; /f1是一个含有double类型数据的数组 string s1; /s1是一个含有string类型数据的数组6.1.2 创建数组对象(2)创建数组对象用new运算符创建数组实例,有两种基本形式。a.声明数组和创建数组分别进行。语法形式: type arrayName ; /数组声明 arrayName = new type size; /创建数组实例,size表明数组元素的个数。b.声明数组和创建数组实例也可以合在一起写:语法形式:type arrayName = new type size ; 例如: int a1;a1 =

3、new int 10; /a1是一个有10个int类型元素的数组string s1 = new string 5; /s1是含有5个string类型元素的数组6.1.3 数组的初始化(3)一维数组的初始化语法形式1:type arrayName = new type size val1, val2, ,valn;数组声明与初始化同时进行时,size就是数组元素的个数,它必须是常量,而且应该与大括号内的数据个数一致。语法形式2: type arrayName = new type val1, val2, ,valn ;默认size,由编译系统根据初始化表中的数据个数,自动计算数组的大小。语法形式

4、3: type arrayName = val1, val2, ,valn ;数组声明与初始化同时进行,还可以默认new运算符。语法形式4: type arrayName;arrayName = new type size val1, val2,valn ;把声明与初始化分开在不同的语句中进行时,size同样可以默认,也可以是一个变量。例如: int nums = new int 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用语法形式1初始化int nums = new int 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;/使用语法形式2初始化int n

5、ums = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用语法形式3初始化int nums ;nums = new int 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用语法形式4初始化6.1.4 数组的访问(4)一维数组的访问数组具有初值时,就可以像其他变量一样被访问,既可以取数组元素的值,又可以修改数组元素的值。在C#中是通过数组名和数组元素的下标来引用数组元素的。语法形式: 数组名下标注意: 相对位移是从0开始的,所以下标的值从0到数组元素的最大值(元素个数1)为止。【练习1】有10个数,输出最大值和最小值int max, min;int q

6、ueue = new int10 89, 78, 65, 52, 90, 92, 73, 85, 91, 95 ;/定义一个一维数组max = min = queue0;/queue0是数组第一个数for (int i = 1; i max) max = queuei; if (queuei min) min = queuei;Console.WriteLine(最大数是:+max+最小数是:+ min);/输出数组中的最大值和最小值【练习2】从键盘上输入学生数n,依次输入学生姓名并遍历输出。(答案见下页ppt)【练习3】从键盘上输入n个数,从大到小排序输出。9static void Main

7、(string args)int count;Console.WriteLine(请输入您要登记的学生人数 );count=int.Parse(Console.ReadLine();/ 声明一个存放姓名的字符串数组,其长度等于提供的学生人数 string names = new stringcount;/ 用一个 for 循环来接受姓名 for(int i=0; icount; i+)Console.WriteLine(“请输入学生 0 的姓名 ,i+1);namesi=Console.ReadLine();Console.WriteLine(已登记的学生如下: );/ 用 foreach 循

8、环显示姓名 foreach(string disp in names)Console.WriteLine(0, disp);数组声明初始化数组元素的循环显示输出的循环6.1.5 多维数组多维数组多维数组就是指能用多个下标访问的数组,多维数组类似于同类型值的矩阵。(1)多维数组的声明语法形式: type , , , arrayName;在声明时方括号内加逗号,就表明是多维数组,有n个逗号,就是n+1维数组。例如: int , score; /score是一个int类型的二维数组 float , , table; /table是一个float类型的三维数组6.1.6 创建多维数组对象(2)创建数组

9、对象a.声明数组和创建数组分别进行。语法形式: type , , , arrayName; /数组声明 arrayName = new type size1, size2, size3; /创建数组实例size1,size2,size3分别表明多维数组每一维的元素个数。b.声明数组和创建数组实例也可以合在一起写。语法形式: type , , , arrayName = new type size1, size2, size3; 例如: int , score; score = new int 3, 4; /score是一个3行4列的二维数组 float , , table=new float

10、2, 3, 4 /table是一个三维数组,每一维的维数分别是2、3、46.1.7 多维数组初始化(3)多维数组的初始化多维数组初始化是将每维数组元素设置的初始值放在各自的花括号内,下面以最常用的二维数组为例来讨论。语法形式1: type , arrayName = new type size1, size2 val11, val12,val1n , val21, val22, ,val2n , valm1,valm2,valmn ;数组声明与初始化同时进行,数组元素的个数是size1*size2,数组的每一行分别用一个花括号括起来,每个花括号内的数据就是这一行的每一列元素的值。初始化时的赋值

11、顺序按矩阵的“行”存储原则。语法形式2: type arrayName = new type , val11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;语法形式3: type , arrayName = val11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;数组声明与初始化同时进行,还可以默认new运算符。语法形式4: type , arrayName; arrayName = new type size1, size2 v

12、al11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;例如: int , a = new int 3,4 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用语法形式1初始化int , a = new int , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用语法形式2初始化int , a = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用语法形式3初始化int a ;a = new int 3, 4 0, 1

13、, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用语法形式4初始化【练习1】求一个矩阵Amn的转置矩阵。【练习2】求两个矩阵的乘积AmnxBnm设计思路如下: 两个矩阵相乘必须第一个矩阵的列和第二个矩阵的行相等。156.1.8 交错数组交错数组是元素为数组的数组。交错数组元素的维度和大小可以不同。交错数组有时称为“数组的数组”。以下示例说明如何声明、初始化和访问交错数组。下面声明一个由三个元素组成的一维数组,其中每个元素都是一个一维整数数组:int jaggedArray = new int3; 16jaggedArray0 = new int5;jaggedArray

14、1 = new int4;jaggedArray2 = new int2; 每个元素都是一个一维整数数组。第一个元素是由 5 个整数组成的数组,第二个是由 4 个整数组成的数组,而第三个是由 2 个整数组成的数组。也可以使用初始值设定项用值填充数组元素,在这种情况下不需要数组大小。6.1.9 交错数组的初始化交错数组:int arr;arr = new int3;arr0=new int5;arr1=new int8;arr2=new int3;int arr=new intnew int4,3,6,7,8 ,new int1,2,3,4,5,6,7,8,new int12,23,34;【练习

15、1】某项目组有5名职工,奖金如下:员工1:3个月奖金分别为:300,600,800员工1:4个月奖金分别为:300,200,400,700员工1:2个月奖金分别为:100,800员工1:5个月奖金分别为:100,200,300,300,200员工1:1个月奖金分别为:1000请设计交错数组存员工奖金信息,输出每人的总奖金,并输出第几名员工的奖金最多。【练习2】试设计交错数组存储今年的每一天。完成当年第*天和*月*日的相互转换。6.2 字符串 字符串 -特殊的数组 C#定义了一个基本的类String,专门用于对字符串进 行操作。 1.字符串定义 定义字符串的文本必须放在两个双引号(“ ”)之间

16、例如:string s1;string s2=Shanghai;char s3=计,算,机,科,学;string s4=new String(s3);6.2.2 字符串连接 利用运算符“+”来连接两个字符串。例如:string FirstName=Ning;string LastName=Zhang;string Name=FirstName+ +LastName;6.2.3 字符串搜索 String类的IndexOf()方法,用来返回在字符串中搜索到的第一个匹配项的索引,字符串中第一个字符的索引值为0。例如:string s=ABC 文;int i=s.IndexOf(英); 英6.2.4

17、字符串比较 只要满足下面两个条件中的任何一个,就认为两字符串相等: 两个字符串都为空串,即两个字符串的值都为null。 两个字符串长度相等,并且每个位置的字符都相同。 可以用String类的IndexOf()方法来比较两个字符串,用法如下: string s1=abc;string s2=abc;int pare(s1,s2); 可用“=”和“!=”比较字符串,用法如下: string s1=abc;string s2=abc;if(s1=s2) Console.WriteLine(相等);else Console.WriteLine(不相等); 6.2.5 获取字符串长度 可以用String

18、类的Length属性获取字符串中的字符数。例如:string s=Hello world;Console.WriteLine(s.Length); 6.2.6 提取子字符串 可以用String类的Substring()方法提取子字符串,该方法有两个原型: public string Substring(int startIndex),只有一个参数,即从第几个位置开始截取。 public string Substring(int startIndex, int length),第一个参数指出从第几个位置开始截取,第二个参数指出要截取的字符的个数。例如:string s=取子字符串;string

19、sb1=s.Substring(2);string sb2=s.Substring(2,2);6.2.7 字符串删除 可以用String类的Remove()方法删除字符串,该方法有两个原型: public string Remove(int startIndex)只有一个参数,即删除从startIndex索引位置到最后位置的所有字符。 public string Remove(int startIndex,int length)从startIndex索引位置开始,删除length数目的字符。例如:string s = 取子字符串;string sb1 = s.Remove(2);string sb2 = s.Remove(2, 2); 6.2.8 插入字符串 可以用String类的Insert()方法插入字符串该方法的原型:public string Insert (int startIndex, string value)参数startIndex是新字符串要插入的索引位置;参数value是要插入的字符串。例如:string s=计算机科学;string s1=s.Insert(3, 软件); 6.2.9 字符串替换 可以用St

温馨提示

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

评论

0/150

提交评论