第5章 数组与字符串

上传人:伴*** 文档编号:243061965 上传时间:2024-09-14 格式:PPT 页数:21 大小:471.50KB
返回 下载 相关 举报
第5章 数组与字符串_第1页
第1页 / 共21页
第5章 数组与字符串_第2页
第2页 / 共21页
第5章 数组与字符串_第3页
第3页 / 共21页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,第,5,章 数组与字符串,2024/9/14,1,5.1,数组的基本概念,数组就是相同数据类型的元素按一定顺序排列的集合,。,Java,中,数组元素可以为简单数据类型,也可以为对象。,数组是相同数据类型的元素的集合;,数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起;,数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。,例如,,a0,表示名字为,a,的数组中的第一个元素,,a1,代表数组,a,的第二个元素,依次类推。,2024/9/14,2,5.2,一维数组,要使用,Java,语言数组,一般需经过两个步骤:,一,声明数组,二,创建空间,数据类型 数组名,;,/,声明一维数组,数据类型,数组名,;,数组名,=new,数据类型,个数,;,/,动态分配内存给数组,注意:声明数组时无需指明数组元素的个数(即数据的长度),也不为数组元素分配内存空间。声明的数组不能直接使用,必须经过初始化分配内存后才能使用,数据类型,数组名,= new,数据类型,个数,;,/,数组的声明和创建一并执行,例如,:,int, a;,/,声明名称为,a,的,int,型数组,未分配内存给数组,a = new int10;,/a,中包含有,10,个元素,并分配空间,或,int, a = new int10;,/,声明数组并动态分配内存,int, a1=new int3, a2=new int8,;,/,可在一条声明语句中创建多个数组,2024/9/14,3,说明,用,new,分配内存的同时,数组的每个元素都会自动赋默认值:整型为,0,,实数为,0.0,,字符为,“,0,”,,布尔型为,false,,引用型为,null,。,数组在没有引用变量指向它时(,a=null,),会变为垃圾,不能再被使用,直到垃圾回收器来将它释放掉。,Java,语言提供的,java.util.Arrays,类以支持数组的操作,(见,P59,表,5.1,数组类,Arrays,的常用方法),2024/9/14,4,数组元素的访问,数组名,下标,=,值,;,/,下标可以是整型数或整型表达式,说明,数组元素的访问,可利用数组名和下标来实现,数组名,下标,如,int, a = new int10;,其中,a0,表示,a,数组中的第,1,个元素,,a1,为数组,a,的第,2,个元素,依次类推,,a9,为数组,a,的第,10,个元素(即最后一个元素)。,与,C/C+,不同的是,,Java,对数组元素要进行,越界检查,。,对于每个数组都有一个,属性,length,指明它的长度,如,a.length,指出数组,a,所包含的元素个数(即,a.length,=10,)。,2024/9/14,5,数组举例,public class,MyArray,public static void,main(String,args,),int,myArray,;,/,声明数组,myArray,=new int10;,/,创建数组,myArray0=0;,/,给数组元素赋值,myArray1=1;,myArray2=2;,myArray9=9;,for(int,i=0; i,myArray.length;i,+),System.out.println(i+tt+myArrayi,);,/myArray10=100;,/,将产生数组越界异常,2024/9/14,6,数组的初始化及应用,若在声明数组时进行赋值即初始化称为静态内存分配。,数据类型, ,数组名,=,初值,0,,初值,1,,,,初值,n,;,如:,int, a = 1,2,3,4,5;,/,声明数组,a,,并赋初值,创建一个包含,5,个元素的数组,数组元素分别为,a0=1,,,a1=2,,,a2=3,,,a3=4,,,a4=5;,注意,在,Java,程序中声明数组时,无论用何种方式定义数组,,都,不能指定其长度,。,2024/9/14,7,5.3,foreach,语句与数组,foreach,的语句,:,不用下标就可遍历整个数组,。,foreach,语句需提供,元素类型,、,循环变量的名字,(用于存储连续的元素)和用于从中检索元素的,数组,。,语法:,for (type element : array),System.out.println(element,);,/,输出数组,array,中的各元素,每次从数组,array,中取出一个元素,自动赋给,element,,用户不用判断是否超出了数组的长度。,element,的类型必须与数组,array,中元素的类型相同。,例如:,int, a=1,2,3,4,5;,for (,int,x : a),System.out.println(x,);,/,输出数组,a,中的各元素,2024/9/14,8,5.4,多维数组,二维数组的创建,数据类型,数组名,;,数组名,= new,数据类型,行数,列数,;,或,数据类型,数组名,= new,数据类型,行数,列数,;,例如:,int, a;,/,声明整型数组,a,a=new int34,/,分配一块内存空间,供,3,行,4,列的整型数组,a,使用,或:,int, a=new int34,二维数组,(Java,中无真正的多维数组,只是数组的数组,),二维数组赋初值,数据类型,数组名,=,第,1,行初值,第,n+1,行初值,;,例如:,int, a =11,22,33,44, 66,77,88,99;,注意:声明多维数组并初始化时不能指定其长度,否则出错。,2024/9/14,9,说明:,Java,中的二维数组看作是由多个一维数组构成。,例如:,int, a;,表示定义了一个,数组引用变量,a,,,第一个元素为,a0,最后一个为,an-1,,其长度不确定。,x = new int3;,表示数组,x,有三个元素,每个元素都是,int,类型的一维数组,分别为,int, x0,、,int, x1,、,int, x2,。,给,x0,、,x1,、,x2,赋值,(,它们的长度可以不一样,),,当它们指向真正的数组对象,才可以引用数组中的元素。,x0=new int3; x1=new int2;,Java,中的二维数组可以看成是多个一维数组,x0 ,x00,x01,x02,x1 ,x10,x11,null,x2 ,int, x,2024/9/14,10,与,C,语言的区别,m,行,1,2,5,6,7,n,列,8,9,10,11,Java,语言的二维数组不一定是矩形,C,语言的二维数组是矩形,m,行,1,2,5,6,7,n,列,8,9,10,11,12,3,4,2024/9/14,11,二维数组申请内存方式,(,必须指定高层维数,),:,int, a = new,int,10;,int, a = new,int,103;,int, a = new,int,3;,int, a = new,int,;,创建高维数组对象的同时,创建所有的低维数组对象。,例如:,int, x = new,int,23;,x0 ,图,5.7,规则的二维数组内存分配,x00,x01,x02,x1 ,x10,x11,int, x,x12,2024/9/14,12,求二维数组的维数,计算某数组的行数:,数组名,.length,计算某数组中某行元素的个数:,数组名,下标,.length,如:,a .length;,/,计算数组,a,的行数,a0.length;,/,计算数组,a,的第,1,行元素的个数,a2.length;,/,计算数组,a,的第,3,行元素的个数,2024/9/14,13,import,java.util.Arrays,;,public class,Myarray,public static void,main(String,args,),int,i,j,;,int, a=new int23;,/,声明整型二维数组,a,,并分配内存空间,供,2,行,3,列的数组,a,使用,for(i,=0;i2;i+),/,使用,for,寻呼遍历二维数组,为每个数组元素赋值,for(j,=0;j3;j+),aij,=(,int)(Math.random,()*100);,/Math,类的,random(),方法能够产生一个,0,1,的随机浮点数,System.out.print(a+i+j,+=+,aij,+ );,System.out.println,();,Arrays.sort(a0);,/,数组排序,对数组,a0,升序排序后仍存放在,a0,中(调用方法,Arrays,),Arrays.sort(a1);,System.out.println,(,元素从小到大排序后:,);,for(i,=0;i2;i+),for(j,=0;j3;j+),System.out.print(a+i+j,+=+,aij,+ );,System.out.println,();,例:编写一个,Java,程序,定义一个,2,行,3,列的整型二维数组,对数组中的每个元素赋值一个,0,100,的随机整数,然后分别对第一行和第二行的元素排序。,2024/9/14,14,作业,例,5.1,、,5.2,、,5.4(,多维数组,),P70 1,2024/9/14,15,5.5,字符串,字符串,用一对,双引号,“,”,括起来的字符序列。,Java,语言中,字符串常量或变量均用,类,实现。,字符串变量的创建,格式一:,如:,String s;,/,声明字符串型引用变量,s,,此时,s,的值为,null,s=new,String(,“,Hello,”,);,/,在堆内存中分配空间,并将,s,指向该字符串首地址,String,变量名;,变量名,= new String(,字符串,),;,2024/9/14,16,5.5,字符串,字符串变量的创建,格式二:,如:,String s=new,String(Hello,);,格式三:,如:,String s=Hello;,字符串存储,字符串是引用型变量,所以存储方式与数组基本相同。,String,变量名,= new String(,字符串,),;,String,变量名,= ,字符串,;,2024/9/14,17,5.5,字符串,串连接,例,1,:,str,=,Hello+Java,;,/,str,的值为,HelloJava,“,例,2,:,int,i=10; String s=i=+i;,/s,的值为,i=10,例,3,:,String str1 =,“,Java,”,; str1 =,str1,+,“,Good,”,;,注意:虽然,str1,指向的内存地址是同一个,但对象已经不是同一个了。,2024/9/14,18,5.5,字符串,String,类的常用方法,见,P68,表,5.2,调用,Java,语言定义的方法:,字符串变量名,.,方法名,(),;,2024/9/14,19,public class,Mystring,public static void,main(String,args,),String str1=Hello;,/,声明一个字符串,str1,,初始值为“,Hello!”,String str2=“World!”;,/,声明一个字符串,str2,,初始值为“,World!”,String,str,;,/,声明一个字符串,str,str,=str1+str2;,/str,的值为,str1,与,str2,相连的字符串,/,显示,str,System.out.println(“str,=“+,str,);,/,显示,str,的长度,System.out.println(“str,的长度是:“,+,str.length,();,/,显示,str,的第,3,个位置的字符,System.out.println(“str,的第,3,个字符是:“,+,str,. charAt(3);,/,显示,str,中字符串“,or”,第一次出现的位置,System.out.println(“str,中,or,第一次出现的位置是:“,+,str.indexOf(“or,”);,/,将,str,转变为小写,并显示,System.out.println(str.toLowerCase,();,/,将,str,转变为大写,并显示,System.out.println(str.toUpperCase,();,例:编写一个,Java,程序,对两个字符串进行连接、比较及显示其长度等操作。,2024/9/14,20,作业,例,5.6,P70 10,2024/9/14,21,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!