B05数组与字符串-1课件.ppt
《B05数组与字符串-1课件.ppt》由会员分享,可在线阅读,更多相关《B05数组与字符串-1课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 数组与字符串数组与字符串5.1 数组5.2 字符串5.1 数组数组5.1.1 数组定义及说明5.1.2 数组应用举例5.1.1 数组定义及说明数组定义及说明1数组基本含义同一类型数据元素的有限有序集合同一类型数据元素的有限有序集合元素的类型可以是基本数据类型或对象引用,可以随机访问数组元素的类型可以是基本数据类型或对象引用,可以随机访问数组中的元素。中的元素。在在JavaJava语言中,数组是以对象的形式存在。可以赋值给语言中,数组是以对象的形式存在。可以赋值给ObjectObject类类型的变量,在数组中可以调用类型的变量,在数组中可以调用类Object Object 的所有方法
2、。的所有方法。数组元素通过数组名字和非负整数下标值来引用。下标值起始值数组元素通过数组名字和非负整数下标值来引用。下标值起始值为为0 0。每个数组都有一个由每个数组都有一个由 public final public final 修饰的成员变量:修饰的成员变量:lengthlength,即数组含有元素的个数(即数组含有元素的个数(lengthlength可以是正数或零)可以是正数或零)5.1.1 数组定义及说明数组定义及说明2数组声明(1)(1)一维数组声明一维数组声明Type Type 数组名数组名 ; 例如:例如:int a;int a;Type Type 数组名;数组名; 例如:例如:in
3、t a;int a;(2)(2)二维数组声明二维数组声明Type Type 数组名数组名 ; 例如:例如:int a;int a;Type Type 数组名;数组名; 例如:例如:int a;int a;5.1.1 数组定义及说明数组定义及说明说明:声明数组时无需指明数组元素的个数,也不为数组元声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间素分配内存空间TypeType为数组的类型,可以是基本数据类型也可以是引为数组的类型,可以是基本数据类型也可以是引用类型用类型必须经过初始化分配内存后才能使用。必须经过初始化分配内存后才能使用。注意:方括号中无数字,以下数组声明是错误的。方括号
4、中无数字,以下数组声明是错误的。char s5;char s5; /W /W5.1.1 数组定义及说明数组定义及说明3数组创建数组名数组名=new =new 数组元素类型数组元素类型 数组元素个数数组元素个数 说明:(1 1)数组元素个数可以是常量,也可以是变量)数组元素个数可以是常量,也可以是变量。s = new char 20;s = new char 20;或或int nint n20;20;s = new char n;s = new char n;(2 2)声明和创建可合并)声明和创建可合并:char s = new char 20char s = new char 20;5.1.1
5、 数组定义及说明数组定义及说明3数组创建 (3 3)基本类型数组的每个元素都是一个基本类型的变量。引用)基本类型数组的每个元素都是一个基本类型的变量。引用类型数组的每个元素都是对象的引用。类型数组的每个元素都是对象的引用。例如:例如: class Point class Point int xint x,y;y; Point() x=67;y=10;Point() x=67;y=10; Point(int x, int y)Point(int x, int y) this.x=x;this.y=y;this.x=x;this.y=y;1.1. 5.1.1 数组定义及说明数组定义及说明3数组创建
6、 Point p ; /Point p ; /语句组语句组1 1 p = new Point 100; /p = new Point 100; /语句组语句组1 1 创建了一个创建了一个100100个类型个类型PointPoint的变量。的变量。 注意:注意:并不创建并不创建100100个个PointPoint对象;创建对象;创建100100个对象的工作必须分个对象的工作必须分别完成如下:别完成如下: p0 = new Point(); /p0 = new Point(); /语句组语句组2 2 7.7. p99 = new Point(); /p99 = new Point(); /语句组语
7、句组2 2执行语句组1P0P0执行语句组执行语句组2 2P0P00 x1250 x1251010y y6767x xP1P10 xAE30 xAE31010y y6767x xP99P990 xAF50 xAF51010y y6767x xP0P0P0P0图图5-1 内存映像图图图5-15-1显示了执行语句组显示了执行语句组1 1、语句组、语句组2 2后的内存映像图后的内存映像图5.1.1 数组定义及说明数组定义及说明4数组元素的使用 用来指示单个数组元素的下标必须总是从用来指示单个数组元素的下标必须总是从0 0开始开始 任何访问在上述界限之外的数组元素的企图都会引起任何访问在上述界限之外的数
8、组元素的企图都会引起运行时出错。运行时出错。使用length属性的例子如下: int list = new int 10;int list = new int 10; for (int i= 0; i list.length; i+)for (int i= 0; i list.length; i+)1.1.System.out.println(listi);System.out.println(listi);5.1.1 数组定义及说明数组定义及说明5数组的初始化 当创建一个数组时,每个元素都被初始化。当创建一个数组时,每个元素都被初始化。 JavaJava语言允许声明数组时初始化语言允许声明数
9、组时初始化: :String names = Georgianna,Jen,Simon;String names = Georgianna,Jen,Simon; 等同于:等同于: String names ;String names ; names = new String 3;names = new String 3; names 0 = Georgianna;names 0 = Georgianna; names 1 = Jen;names 1 = Jen;1.1. names 2 = Simon;names 2 = Simon;5.1.1 数组定义及说明数组定义及说明6多维数组 Java
10、Java没有真正的多维数组没有真正的多维数组 N N维数组是维数组是N-1N-1维数组的数组。维数组的数组。 以下是矩阵数组例子:以下是矩阵数组例子: int twoDim = new int 4 int twoDim = new int 4 twoDim0 = new int 5 ; twoDim0 = new int 5 ; twoDim1 = new int 5 ; twoDim1 = new int 5 ; twoDim2 = new int 5 ; twoDim2 = new int 5 ;1.1. twoDim3 = new int 5 ; twoDim3 = new int 5
11、;5.1.1 数组定义及说明数组定义及说明6多维数组 以下是非矩阵数组例子:以下是非矩阵数组例子: int twoDim = new int 4 int twoDim = new int 4 twoDim0 = new int 2 ; twoDim0 = new int 2 ; twoDim1 = new int 3 ; twoDim1 = new int 3 ; twoDim2 = new int 4 ; twoDim2 = new int 4 ;1.1. twoDim3 = new int 5 ; twoDim3 = new int 5 ;x x0 00 00 01 11 10 01 11
12、 11 12 22 20 02 21 12 22 22 23 33 30 03 31 13 32 23 33 33 34 4数组列下标数组行下标图5-2 非矩阵数组内存映像图5.1.1 数组定义及说明数组定义及说明7注意事项 不允许静态说明数组不允许静态说明数组 下列声明是错误的。下列声明是错误的。 char s5;char s5; /W /W int a154;int a154; /W /W 正确声明为:正确声明为: char s ;char s ; /R /R1.1. int a1 ;int a1 ; /R /R5.1.1 数组定义及说明数组定义及说明7注意事项 数组维数说明顺序应该从高到
13、低数组维数说明顺序应该从高到低 下列声明是错误的。下列声明是错误的。int a =new int 4;int a =new int 4; /W /W 正确声明为:正确声明为:int a =new int4 ;int a =new int4 ; /R /R 5.1.1 数组定义及说明数组定义及说明7注意事项 数组维数的指定只能出现在数组维数的指定只能出现在newnew运算符之后运算符之后 下列声明是错误的。下列声明是错误的。int a 4 =new int3 4;int a 4 =new int3 4; /W /W 正确声明为:正确声明为:int a =new int3 4;int a =new
14、 int3 4; /R /R JavaJava数组名是一个引用,当将一个数组名赋值给另数组名是一个引用,当将一个数组名赋值给另一个数组时,实际上是名字的复制一个数组时,实际上是名字的复制。5.1.2 数组应用举例数组应用举例1Java数组名是一个引用 【实例实例5-15-1】 public class ArrayExample1public class ArrayExample1 public static void main(String args)public static void main(String args)int a =10,20,30,40, b ;int a =10,20,
15、30,40, b ;b= a ; b= a ; for(int i=0;i b.length;i+)for(int i=0;i b.length;i+) b i =2 b i =2* *b i ;b i ;for(int i=0;i a.length;i+)for(int i=0;i a.length;i+)System.out.println(ai); System.out.println(ai); 1.1. 5.1.2 数组应用举例数组应用举例1Java数组名是一个引用运行输出结果为:运行输出结果为:2020404060608080说明:【实例5-1】中将数组b中的元素翻倍后,数组a中的元
16、素也作了相应的变化,这是因为a和b都是引用,在这里指向同一对象。5.1.2 数组应用举例数组应用举例【实例5-2】 class Aclass Avoid square(int c)void square(int c)int i;int i;for(i=0;ic.length;i+) ci=cifor(i=0;ic.length;i+) ci=ci* *ci;ci; public class ArrayExample2public class ArrayExample2public static void main(String args)public static void main(Stri
17、ng args)A a=new A();A a=new A(); int b =10,20,30,40;int b =10,20,30,40;a.square(b); a.square(b); for(int i=0;i b.length;i+)for(int i=0;i b.length;i+) System.out.println(bi); System.out.println(bi); 1.1. 5.1.2 数组应用举例数组应用举例【实例5-2】运行输出结果为:运行输出结果为:10010040040090090016001600说明:【实例62】中将数组b中的元素在调用对象a中方法squ
18、are后发生变化,这是调用方法时传递的是引用,即形参c和实参b在这里指向同一地址单元,这样当执行方法square时c指向单元的内容发生的任何改变必将影响数组b。5.1.2 数组应用举例数组应用举例2数组定义时数组元素大小可以是变量 【实例【实例5-35-3】 public class ArrayExample3public class ArrayExample3public static void main(String args)public static void main(String args)int i,Num=9,j;int i,Num=9,j;for (j=1;j=Num ;j+
19、 )for (j=1;j=Num ;j+ )int b=new intj;int b=new intj;for(i=0;ib.length;i+) bi=i+1;for(i=0;ib.length;i+) bi=i+1;for(i=0;ib.length;i+)for(i=0;ib.length;i+)System.out.print(i+1)+System.out.print(i+1)+* *+bi+=+(i+1)+bi+=+(i+1)* *bi+ ); bi+ ); ();(); 1.1. 5.1.2 数组应用举例数组应用举例2数组定义时数组元素大小可以是变量【实例【实例5-35-3】5.
20、1.2 数组应用举例数组应用举例3二维数组是数组元素为一维数组的数组 【实例【实例5-45-4】 public class ArrayExample4public class ArrayExample4 public static void main(String args)public static void main(String args)int i,j,Num=9;int i,j,Num=9;int b=new intNum;int b=new intNum;for (j=1;j=Num ;j+ )for (j=1;j=Num ;j+ ) bj-1=new intj;bj-1=new
21、intj;for(i=1;i=bj-1.length;i+) bj-1i-for(i=1;i=bj-1.length;i+) bj-1i-1=i1=i* *j;j;1.1. 5.1.2 数组应用举例数组应用举例3二维数组是数组元素为一维数组的数组 【实例【实例5-45-4】for (j=1;j=b.length ;j+ )for (j=1;j=b.length ;j+ ) for(i=1;i=bj-1.length;i+)for(i=1;i=bj-1.length;i+)System.out.print(i+System.out.print(i+* *+j+=+bj-+j+=+bj-1i-1+
22、 ); 1i-1+ ); ();(); 10.10. 5.1.2 数组应用举例数组应用举例3二维数组是数组元素为一维数组的数组 【实例【实例5-45-4】 说明说明:本例定义了一个不规则二维数组:本例定义了一个不规则二维数组b b,用于存储,用于存储乘法表的结果,该二维数组实际上是一个原则为一维乘法表的结果,该二维数组实际上是一个原则为一维数组的一维数组,数组的一维数组,“b.length=9”“b.length=9”表明数组表明数组b b是元素是元素个数为个数为9 9的一维数组,的一维数组,“b0.length=1” “b0.length=1” 表明数组表明数组元素元素b0b0是一个元素个数
23、为是一个元素个数为1 1的一维数组,的一维数组,“b1.length=2” “b1.length=2” 表明数组元素表明数组元素b1b1是一个元素个是一个元素个数为数为2 2的一维数组,依此类推,的一维数组,依此类推,“b8.length=1” “b8.length=1” 表明数组元素表明数组元素b8b8是一个元素个数为是一个元素个数为9 9的一维数组。的一维数组。5.2 字符串字符串5.2.1 String类5.2.2 StringBuffer类5.2.3 字符串应用举例5.2 字符串字符串字符串指的是字符的序列字符串指的是字符的序列StringString类:用于存储和处理字符串常量类:用
24、于存储和处理字符串常量StringBufferStringBuffer类:用于存储和操作字符串变量类:用于存储和操作字符串变量5.2.1 String类类一般说明:JavaJava使用使用java.langjava.lang包中的包中的StringString类类字符串常量字符串常量: :用双引号括住,用双引号括住,Hello World!Hello World!1String类的声明和创建声明字符串声明字符串,如,如String s;String s;创建字符串创建字符串:String(String(字符串常量字符串常量 ););String( char a ); /String( char
25、 a ); /字符数组字符数组a aString( char a , int startIndex, int numChars );String( char a , int startIndex, int numChars );String s=new String(“hello”);String s=new String(“hello”);或或String s=“hello”;String s=“hello”;5.2.1 String类类2String类构造函数:public Stringpublic String()():该构造函数用于创建一个空的字符串常量。:该构造函数用于创建一个空的字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- B05 数组 字符串 课件
限制150内