[工学]B05数组与字符串-1

上传人:豆浆 文档编号:55333538 上传时间:2018-09-27 格式:PPT 页数:53 大小:505.50KB
返回 下载 相关 举报
[工学]B05数组与字符串-1_第1页
第1页 / 共53页
[工学]B05数组与字符串-1_第2页
第2页 / 共53页
[工学]B05数组与字符串-1_第3页
第3页 / 共53页
[工学]B05数组与字符串-1_第4页
第4页 / 共53页
[工学]B05数组与字符串-1_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《[工学]B05数组与字符串-1》由会员分享,可在线阅读,更多相关《[工学]B05数组与字符串-1(53页珍藏版)》请在金锄头文库上搜索。

1、第5章 数组与字符串,5.1 数组 5.2 字符串,5.1 数组,5.1.1 数组定义及说明 5.1.2 数组应用举例,5.1.1 数组定义及说明,1数组基本含义 同一类型数据元素的有限有序集合 元素的类型可以是基本数据类型或对象引用,可以随机访问数组中的元素。 在Java语言中,数组是以对象的形式存在。可以赋值给Object类型的变量,在数组中可以调用类Object 的所有方法。 数组元素通过数组名字和非负整数下标值来引用。下标值起始值为0。 每个数组都有一个由 public final 修饰的成员变量:length,即数组含有元素的个数(length可以是正数或零),5.1.1 数组定义及

2、说明,2数组声明 (1)一维数组声明 Type 数组名 ; 例如:int a; Type 数组名; 例如:int a; (2)二维数组声明 Type 数组名 ; 例如:int a; Type 数组名; 例如:int a;,5.1.1 数组定义及说明,说明: 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间 Type为数组的类型,可以是基本数据类型也可以是引用类型 必须经过初始化分配内存后才能使用。 注意: 方括号中无数字,以下数组声明是错误的。 char s5; /W,5.1.1 数组定义及说明,3数组创建 数组名=new 数组元素类型数组元素个数 说明: (1)数组元素个数可以是

3、常量,也可以是变量。 s = new char 20; 或 int n20; s = new char n; (2)声明和创建可合并: char s = new char 20;,5.1.1 数组定义及说明,3数组创建 (3)基本类型数组的每个元素都是一个基本类型的变量。引用类型数组的每个元素都是对象的引用。 例如: class Point int x,y; Point() x=67;y=10; Point(int x, int y) this.x=x;this.y=y; ,5.1.1 数组定义及说明,3数组创建 Point p ; /语句组1 p = new Point 100; /语句组1

4、 创建了一个100个类型Point的变量。 注意:并不创建100个Point对象;创建100个对象的工作必须分别完成如下: p0 = new Point(); /语句组2 p99 = new Point(); /语句组2,执行语句组1,执行语句组2,图5-1 内存映像图,图5-1显示了执行语句组1、语句组2后的内存映像图,5.1.1 数组定义及说明,4数组元素的使用 用来指示单个数组元素的下标必须总是从0开始 任何访问在上述界限之外的数组元素的企图都会引起运行时出错。 使用length属性的例子如下: int list = new int 10; for (int i= 0; i list.l

5、ength; i+) System.out.println(listi);,5.1.1 数组定义及说明,5数组的初始化 当创建一个数组时,每个元素都被初始化。 Java语言允许声明数组时初始化: String names = “Georgianna“,“Jen“,“Simon“; 等同于: String names ; names = new String 3; names 0 = “Georgianna“; names 1 = “Jen“; names 2 = “Simon“;,5.1.1 数组定义及说明,6多维数组 Java没有真正的多维数组 N维数组是N-1维数组的数组。 以下是矩阵数组

6、例子: int twoDim = new int 4 twoDim0 = new int 5 ; twoDim1 = new int 5 ; twoDim2 = new int 5 ; twoDim3 = new int 5 ;,5.1.1 数组定义及说明,6多维数组 以下是非矩阵数组例子: int twoDim = new int 4 twoDim0 = new int 2 ; twoDim1 = new int 3 ; twoDim2 = new int 4 ; twoDim3 = new int 5 ;,x,图5-2 非矩阵数组内存映像图,5.1.1 数组定义及说明,7注意事项 不允许静

7、态说明数组 下列声明是错误的。 char s5; /W int a154; /W 正确声明为: char s ; /R int a1 ; /R,5.1.1 数组定义及说明,7注意事项 数组维数说明顺序应该从高到低 下列声明是错误的。 int a =new int 4; /W 正确声明为: int a =new int4 ; /R,5.1.1 数组定义及说明,7注意事项 数组维数的指定只能出现在new运算符之后 下列声明是错误的。 int a 4 =new int3 4; /W 正确声明为: int a =new int3 4; /R Java数组名是一个引用,当将一个数组名赋值给另一个数组时,

8、实际上是名字的复制。,5.1.2 数组应用举例,1Java数组名是一个引用 【实例5-1】 public class ArrayExample1 public static void main(String args) int a =10,20,30,40, b ; b= a ; for(int i=0;i b.length;i+) b i =2*b i ; for(int i=0;i a.length;i+) System.out.println(ai); ,5.1.2 数组应用举例,1Java数组名是一个引用 运行输出结果为: 20 40 60 80 说明:【实例5-1】中将数组b中的元素

9、翻倍后,数组a中的元素也作了相应的变化,这是因为a和b都是引用,在这里指向同一对象。,5.1.2 数组应用举例,【实例5-2】 class A void square(int c) int i; for(i=0;ic.length;i+) ci=ci*ci; public class ArrayExample2 public static void main(String args) A a=new A(); int b =10,20,30,40; a.square(b); for(int i=0;i b.length;i+) System.out.println(bi); ,5.1.2 数组

10、应用举例,【实例5-2】 运行输出结果为: 100 400 900 1600 说明:【实例62】中将数组b中的元素在调用对象a中方法square后发生变化,这是调用方法时传递的是引用,即形参c和实参b在这里指向同一地址单元,这样当执行方法square时c指向单元的内容发生的任何改变必将影响数组b。,5.1.2 数组应用举例,2数组定义时数组元素大小可以是变量 【实例5-3】 public class ArrayExample3 public static void main(String args) int i,Num=9,j; for (j=1;j=Num ;j+ ) int b=new i

11、ntj; for(i=0;ib.length;i+) bi=i+1; for(i=0;ib.length;i+) System.out.print(i+1)+“*“+bi+“=“+(i+1)*bi+“ “); System.out.println(“); ,5.1.2 数组应用举例,2数组定义时数组元素大小可以是变量 【实例5-3】,5.1.2 数组应用举例,3二维数组是数组元素为一维数组的数组 【实例5-4】 public class ArrayExample4 public static void main(String args) int i,j,Num=9; int b=new int

12、Num; for (j=1;j=Num ;j+ ) bj-1=new intj; for(i=1;i=bj-1.length;i+) bj-1i-1=i*j; ,5.1.2 数组应用举例,3二维数组是数组元素为一维数组的数组 【实例5-4】 for (j=1;j=b.length ;j+ ) for(i=1;i=bj-1.length;i+) System.out.print(i+“*“+j+“=“+bj-1i-1+“ “); System.out.println(“); ,5.1.2 数组应用举例,3二维数组是数组元素为一维数组的数组 【实例5-4】 说明:本例定义了一个不规则二维数组b,用

13、于存储乘法表的结果,该二维数组实际上是一个原则为一维数组的一维数组,“b.length=9”表明数组b是元素个数为9的一维数组,“b0.length=1” 表明数组元素b0是一个元素个数为1的一维数组,“b1.length=2” 表明数组元素b1是一个元素个数为2的一维数组,依此类推,“b8.length=1” 表明数组元素b8是一个元素个数为9的一维数组。,5.2 字符串,5.2.1 String类 5.2.2 StringBuffer类 5.2.3 字符串应用举例,5.2 字符串,字符串指的是字符的序列 String类:用于存储和处理字符串常量 StringBuffer类:用于存储和操作字

14、符串变量,5.2.1 String类,一般说明: Java使用java.lang包中的String类 字符串常量:用双引号括住,“Hello World!“ 1String类的声明和创建 声明字符串,如String s; 创建字符串: String(字符串常量 ); String( char a ); /字符数组a String( char a , int startIndex, int numChars ); String s=new String(“hello”); 或String s=“hello”;,5.2.1 String类,2String类构造函数: public String()

15、:该构造函数用于创建一个空的字符串常量。 String empty=new String(); 等价于使用直接量 “” 初始化字符串 String empty=“”; public String(String value):该构造函数用于根据一个已经存在的字符串常量来创建一个新的字符串常量,该字符串的内容和已经存在的字符串常量一致。 public String(char a)或String( char a , int startIndex, int numChars ):该构造函数用于根据一个已经存在的字符数组来创建一个新的字符串常量。,5.2.1 String类,2String类构造函数: char ch=H,e,l,l ,o; String helloString=new String(ch); String heString=new String(ch,0,2); System.out.println(helloString); System.out.println(heString); 结果为: Hello he public String(StringBuffer buffer):该构造函数用于根据一个已经存在的StringBuffer对象来创建一个新的字符串常量。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号