文档介绍:第6章数组和字符串
主要内容
本章介绍两种常用的数据结构:数组和字符串。数组和字符串都是引用类型,字符串在存储结构上是字符数组,但是字符串是内置的类型。
本章还介绍字符串类型及其应用。字符串在程序中几乎是无处不在的,字符串分为字符串常量和字符串变量两种。字符串常量是string类的对象,字符串变量是StringBuilder类的对象。C#。
最后,本章简单地介绍了复合格式化。
一维数组的声明、创建和初始化
声明一个一维数组的格式为:类型名[ ] 数组名;
数组是引用类型的对象,也需要有实例化,即创建对象的过程。创建一个一维数组有两种方式:
第一种方式是针对已经声明了但没有指定长度的数组名,可以用new关键字创建,同时在方括号[ ]中用正整数指定数组元素的个数,例如:MyArray1 = new int [7];
第二种方式是将声明和创建同时完成,例如:int [] MyArray1 = new int [7];
初始化
一维数组的初始化的形式很简单,将初始值依次列于一对大括号之内,注意,{}内的值,必须和数组类型一致。
MyArray1 = new int [3]{1,3,5}
访问一维数组元素
可以这么认为,数组是一组同一类型的变量,每个元素是一个变量,只不过变量名由数组名和数组索引两部分组成。例如:
string [] strArray = {"Alan","Bush","Carol"}; //声明、创建并初始化
strArray[0]="Aden"; //向数组元素赋值
foreach(string s in strArray)(s);
string ss=strArray[1]; //获得数组元素的值
(ss);
输出结果是:
Aden
Bush
Carol
Bush
多维数组的声明、创建和初始化
二维数组的声明格式为:类型名[,] 数组名;
类型名[,,] 数组名;就是声明三维数组。
依此类推,[]中n-1个逗号表示声明n维数组。
对于已经声明为多维数组但没有创建的数组名,用new表达式创建,例如:int [,,] egArray; egArray = new int [2,2,2];
可以将声明和创建归并为一句语句,例如:int [,,] egArray = new int [2,2,2];
初始化
将初始化数据列于{}之内,每维的数据封装在一对{}中,附在new表达式之后,例如:int [,,] egArray;
egArray = new int [2,2,2]{{{0,1},{2,3}},{{{4,5},{6,7}}};
访问多维数组元素
下面的程序段显示了多维数组的声明、创建、初始化和元素访问的各个语法现象。
int [,] AA, BB; AA=new int[2,2];
for (int i=0;i<=1;i++) //用二重循环遍历二维数组
for (int j=0;j<=1;j++)
{ AA[i,j]=i*10+j; (AA[i,j]);}
BB=AA; BB[0,0] = 2 * BB[1,1];
("BB[0,0]={0} BB[1,1]={1}",BB[0,0],BB[1,1]);
输出结果:
0
1
10
11
BB[0,0]=22 BB[1,1]=11
交错数组的声明、创建和初始化
因为是数组的数组,所以要使用多个[]来表示,例如:
char [][] jaggedArray1; int [][][] jaggedArray2;
string [][,] jaggedArray3;
创建交错数组的过程也是使用new表达式以分配空间,但是每一维的长度可能不同,所以应该每一维分别用语句指定空间,例如:
int [][] jaggedArray = new int [3][]; jaggedArray[0] = new int [4];
jaggedArray[1] = new int [2]; jaggedArray[2]= new int [3];
初始化
和创建过程一样必须每个维单独初始化。例如:
int [][] jaggedArray = new int [3][]; jag