收藏 分销(赏)

《Java程序设计案例教程》教学课件06数组和字符串.pdf

上传人:曲**** 文档编号:225296 上传时间:2023-03-08 格式:PDF 页数:45 大小:1.39MB
下载 相关 举报
《Java程序设计案例教程》教学课件06数组和字符串.pdf_第1页
第1页 / 共45页
《Java程序设计案例教程》教学课件06数组和字符串.pdf_第2页
第2页 / 共45页
《Java程序设计案例教程》教学课件06数组和字符串.pdf_第3页
第3页 / 共45页
《Java程序设计案例教程》教学课件06数组和字符串.pdf_第4页
第4页 / 共45页
《Java程序设计案例教程》教学课件06数组和字符串.pdf_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、模块6数组和字符串r学习目标掌握一维数组的定义和使用。了解二维数组及多维数组的定义和使用。了解对象数组的使用。了解Arrays类中相关方法的使用。掌握字符串的定义和相关操作。了解动态字符串的相关操作。06技能目标能够在MyEdipse IDE中定义和使用一维数组及读懂二维数组代码。01能够在MyEclipse IDE中编写并运用对象数组。02能够在MyEclipse IDE中应用Arrays类操作数组。03能够在MyEclipse IDE中应用String类及StringBuffer类操作字符串。046回顾与思考通过模块4和模块5的学习,我们可以编写具有一定规模的Java程序了。模块2还 提及

2、了一个尚未详细分析的引用数据类型:数组。本模块我们将系统学习数组的特 性及其应用。在前面的模块中学习的数据类型,无论是基本数据类型,还是引用数据类型,都 有一个共同特点:其所操作的都是单个数据。例如,需要计算100个学生某门课的平 均成绩,若按照前面所学的方法,则必须定义100个变量以存放100个学生的成绩。如果再要求输出所有学生的成绩,就不得不在程序中再次写出100个变量名。如此规 模的变量存在,显然不利于数据处理。那么,应该采取什么样的方法来解决这个问 题呢?6.2数组数组是数量一定、类型相同 的数据按顺序组成的一种引用数 据类型。数组中的数据被称为数 组的元素。6.2数组_6.2.1 一

3、维数组1.数组的定义定义数组首先要声明数组,其基本语法格式如下。数据类型数组名;或 数据类型数组名;其中,表示声明的是数组变量,而不是单个数据变量。数组声明后还 不能立即被访问,因为还没有为数组分配内存空间,所以接着要创建数组。创建数 组的基本语法格式如下。数组名二new数据类型数组长度;6.2数组_6.2.1 一维数组心2.数组的使用通过一个整数下标或一个整数表达式下标,可以访问数组的每一个元素。语法格式如下O 数组名下标下标从0开始不间断地向上排序。例如,i 4 代表数组的第5个元素。每个数组都有一个length属性指明数组的长度,也就是数组所能容纳元素的数 量。语法格式如下。数组名.le

4、ngth6.2数组_6.2.1 一维数组 2.数组的使用【例61】在一个有8个整数12,29,7,35,18,2,81,65的数组中找出其中 的最小值及其下标。文件名为Example6_l.java,其代码如下。package ch6.example;public class Example6_l/*例6-1找出数组的最小值及其下标*authorJava程序设计案例教程*vers ion 1.0public static void main(String口 args)int myArray=12,29,7,35,18,2,81,65int min=myArrayCo;/min 存放最小值int

5、 index=0;/index存放最小值的下标for(int i=1;i V myArray.length;i+)if(myArrayV min)min myArrayi;*/index=i;6.2数组_6.2.1 一维数组心2.数组的使用【例6.1】System.out.println(数组中最小的数是:+min+”,其下标为:+index);运行结果如下。数组中最小的数是:2,其下标为:56.2数组_6.2.2 二维及多维数组Java中并不直接支持多维数组。所以,多维数组的定义是通过对一维数组的嵌套式定义来实 现的,即用数组的数组来定义多维数组。以二维数组为例,其定义方式有以下两种。(1)

6、一步完成二维存储空间分配,其基本语法格式如下。数据类型数组名=new数据类型高维数组长度低维数组长度;或数据类型数组名=new数据类型高维数组长度低维数组长度;6.2数组_6.2.2二维及多维数组(2)分别为每一维分配存储空间,但注意必须从高维到低维进行。其基本语法格式分为如 下两步。数据类型口数组名=new数据类型高维数组长度1口;数组名0=new数据类型低维数组长度1;数组名1=new数据类型低维数组长度1;数组名高维数组长度一口=new数据类型低维数组长度上其中,各候暖组长度的取值可以不一样。以!i=new int2口;/高维数组的长度 i.length 为 2i0=new int3;/

7、低维数组亚0的长度 i0.length 为 3il=new int4;/低维数组 il的长度 il.length 为 46.2数组_6.2.2二维及多维数组【例62】输出一个多级的杨辉三角形,级数由用户从控制台输入。文件名为Example6_2.java,其代码如下。package ch6.example;import java.util.Scanner;public class Example6_2/*例6-2杨辉三角形*authorJava程序设计案例教程*version 1.0*/public static void main(String口 args)Scanner sc=new Sc

8、anner(System,in);System.out.print(输入杨辉三角的级数:”兀 int level=sc.nextInt();y=new intlevel1口;行数int i,j;for(i=0;i C y.length;i+)=new inti+1;列数y00=1;第一行第一列元素for(i=1;i y.length;i+)6.2数组_6.2.2二维及多维数组【例62】yi=new inti+1;列数voo 1;第一行第一列元素for(i=1;i V y.length;i+)yEio=1;从第二行开始所有第一列所有元素for(j=l;j yi.length l;j+)从第三行开

9、始=yi lj 1+yi 第一列和对角线之外元素 丫口兀正口.length 1=1;从第二行开始所有对角线元素)运行结果如下。for(i=0;i y.length;i+)输出for(j=0;j V yi.length;j+)System,out.print(yij+);Sys ton.out.println();输入杨辉三角的级数:511 112 113 3 11 4 6 4 106.3对象数组组成数组元素的数据类型除了基本数据类 型以外,还包括引用数据类型。对象数组是由 同一个类的若干个实例组成的有序数据集合。对象数组可以用来处理更为复杂的数据类型。6.3对象数组【例63】以【例6-1】中的

10、整数型数组12,29,7,35,18,2,81,65为半径,创建相应的圆,再按从小到大的顺序输出圆的周长和面积。运行结果如下。_ 其代码见P131-132。圆的周长依次为:12 43 75 113 182 219 408 508圆的面积依次为:12 153 452 1017 2642 3848 13273 20611 6.4 Arrays类0)0J DK提供了一个专门用于操作数组的 Arrays类,该类位于java.util包中。Arrays类提供了许多静态方法来操作数组,如排序、比较、复制、搜索等。用户可以 直接调用这些方法,而不需要具体编写代 码去操作数组,这大大提高了开发效率。6.4 A

11、rrays类【例6修改【例6-3】,用Arrays类中相关的方法对数组进行排序操值文件名Example6_4.java,其代码如下。_ 其代码见P132-133。Arrays类的sort。方法将通过 参数输入的数值型的数组元素按 从小到大的顺序进行排序,运行 结果参考【例6-3的运行结果。6.5字符串操作6.5.1字符串的表示和生成方法可以通过String类提供的构造方法创建字符串对象。例如,Stringstr二new StringCxxx)/o其中,xxx代表所创建字符串对象的值。String类有一个特点,就是即使程序中不用new关键字,Java编译系统 也能从String类生成一个对象。例

12、如,String str二 xxx”;语句中,虽然没有用new关键字,但是仍然生成了一个字符串对象st%这种字符串对象的生成方式因为简洁、方便而被广泛使用。6.5字符串操作6.5.2字符串的访问(lJengthO 方法)通过调用length。方法可得到字符串的长度。例如:String str二”南京交通职业技术学院”;int length=str.length();length的值为10。6.5字符串操作6.5.2字符串的访问(2.charAt(int index)方法charAt(int index)方法用于取出字符串某一特定位置的字符。例如:String str=南京交通职业技术学院”;c

13、har c=str.charAt(2);c的值为交。在Java中,对字符 串中字符的检索是从0位开始计算的。6.5字符串操作6.5.2字符串的访问(3.startsWith(String prefix)方法:startsWith(Str ing prefix)方法用 于确定在字符串的 开头是否含有一个 给定的字符串前缀String str=南京交通职业技术学院”;boolean b=str.startsWith(“南京)b的值为true,因为str是以南京开头的。o例如:6.5字符串操作6.5.2字符串的访问4.endsWith(String suffix)方法endsWith(Stri ng

14、 suffix)方法用于 确定字符串是否以 给定的字符串结尾 o例如:String str=南京交通职业技术学院”;boolean b=str.endsWith(技术)b的值为false,因为str不是以技术结尾的。6.5字符串操作6.5.2字符串的访问(5.indexOf(String str)方法如果想确定字符串中字符或子串的位置,可以使用indexOf(String str)方法。如果检索到存在的字符或子串,将返回一个代表位置的整数,否则返回值为-1。indexOf(String str)方法 返回字符或子串首次出现的位置。例如:String str=南京交通职业技术学院”;int in

15、dex=str.indexOf(职 业);/index 的值为 4int index=str.indexOf(通);/index 的值为 3int index=str.indexOf(通业”);/index 的值为一16.5字符串操作6.5.2字符串的访问(6.lastIndexOf(String str)方法)lastIndexOf(String str)方法返回字符或子串最后一次出现的位置。例如:String str=”南京交通职业技术学院智能交通”;int index=str.lastlndexOf(交通)index的值为12。6.5字符串操作6.5.2字符串的访问(7.substrin

16、g(int beginlndex,int endindex)方法)substring(int beginlndex,int endindex)方法一次可截取一个子串。例如:String str二”南京交通职业技术学院”;String si=str.substring(6,8);sl的值为技术在substring(int beginlndex,int endindex)方法中可以指定从何处开始提取字符串及到 何处结束;若不指出到何处结束,则默认为取至字符串结尾。例如:String s2=str.substring(6);s2的值为技术学院6.5字符串操作6.5.3字符串的修改l.replace(

17、char oldChar,char newChar)方法replace(char oldChar,char newChar)方法可以将字符串中的一个字符替换为另一个字 符。例如:String strl二”南京交通职业技术学院”;String str2=strl.replace。南丁北);str2的值为北京交通职业技术学院。6.5字符串操作6.5.3字符串的修改2.concat(String str)方法concat(String str)方法可以把两个字符串合并为一个字符串。例如:String strl二”南京交通职业技术学院”;String str2=strl.concat(信息工程学院)s

18、tr2的值为南京交通职业技术学院信息工程学院。在java中,更常见的是使用字符串连接符+来合并字符串,因为 这种方法更为直观。6.5字符串操作6.5.3字符串的修改3.toUpperCase()和toLowerCase()方法toUpperCase。和toLowerCase。方法可以实现字符串中字符大小写之间的转换。例如:String strl=Nanjing Communications Institute of Technology;String str2=strl.tollpperCase();str2的值为 NANJINGCOMMUNICATIONS INSTITUTE OFTECHN

19、OLOGY o6.5字符串操作6.5.3字符串的修改4.trim()方法trim。方法可以去掉字符串中开头和结尾处的空格。例如:String strl二”南京交通职业技术学院”;String str2=strl.trimQ;str2的值为南京交通职业技术学院。6.5字符串操作6.5.3字符串的修改 5.value0f(数据类型)方法valueOf徵据类型)方法可以将其他类型的数据对象转换为一个字符串,它是一个静态方 法。例如:int value=8;String str=String.valueOf(value);str的值为8。6.5字符串操作6.5.4字符串的比较l.equals(Stri

20、ng str)方法equals(String str)方法用来确定字符串的值是否相等。例如:String str=Nanjing Communications;boolean b=str.equals(NANJING COMMUNICATIONS);b的值为false。6.5字符串操作6.5.4字符串的比较2.equalsIgnoreCase(String str)equalsIgnoreCase(String str)方法以忽略大小写的方式比较两个字符串的值是否相等 o例如:String str=Nanjing Communications;boolean b=str.equalsIgnor

21、eCase(NANJING COMMUNICATIONS);b的值为true。6.5字符串操作6.5.4字符串的比较2.equalsIgnoreCase(String str)【例65】编写程序将用户输入的字符串翻转输出。文件名为Example6_5.java,其代码如下。package ch6.example;import java.util.Scanner;public class Example6_5/*例6-5翻转输出字符串*authorJava程序设计案例教程*vers ion 1.0*/public static void main(String args)Scanner sc=n

22、ew Scanner(System,in);System.out.print(请输入字符串:”);String str=sc.next();String strNew=;for(int i=0;i C str.length();i+)strNew strNew+str.charAt(str.length()-1 i);System.out.printin(翻转后的字符串为:+strNew);)6.5字符串操作6.5.4字符串的比较2.equalsIgnoreCase(String str)【例65】编写程序将用户输入的字符串翻转输出。运行结果如下。请输入字符串:字符串翻转 翻转后的字符串为:转

23、翻串符字6.5字符串操作6.5.5动态字符串String类提供了很多处理字符串的功能。但是,一旦创建了String类的 对象,其对象的内容就永远不会变,所以也称String类对象为常量字符串。有时需要优化程序对字符串对象的内容做出修改。为了达到这个目的,Java中专门提供了StringBuffer类来处理动态字符串。所谓动态字符串就是 指其内容可以被修改的字符串。每个StringBuffer对象都能够存储其容量范 围内的一些字符。如果超出了容量,该对象就会自动地扩大容量以容纳多 出来的字符。StringBuffer类提供的方法有一些与String类提供的方法相同。但是,对String对象调用非

24、String类的String Buffer方法是一种语法错误。6.5字符串操作6.5.5动态字符串【例66】常量字符串和动态字符串的比较。文件名为Example6_6.java,其代码如下。package ch6.example;public class Example6_6/*例6-6常量字符串和动态字符串的比较*authorJava程序设计案例教程*version 1.0*/public static void main(String args)String str2=strl.replace,b,x);System.out.println(strl);System.out.println

25、(str2);StringBuffer sbl=new StringBuf fer(nabc);创建StringBuffer类对象StringBuffer sb2=sbl.replace(1,2,x);System.out.println(sbl);System.out.println(sb2);)String strl=abc;6.5字符串操作6.5.5动态字符串【例6-6】运行结果如下。abcaxeaxeaxe尽管程序中执行了语句Stringstr2=strl.replaceCb,,但是,String类又寸象strl的值仍为abc;而语句/zStringBuffer sb2=sbl.rep

26、lace(lz 2,执行后,String Buffe r类对象s b 1的值变成了 axc o6.5字符串操作6.5.5动态字符串【例67】用StringBuffer类的相关方法实现【例6-5】的字符串翻转输出。文件名为Example6_7.java,其代码如下。package ch6.example;import java.util.Scanner;public class Example6_7/*例6-7用StringBuffer类的相关方法翻转输出字符串*authorJava程序设计案例教程*version 1.0public static void main(String口 args)

27、Scanner sc=new Scanner(System,in);System.out.print(请输入字符串:”);String str=sc.next();StringBuffer sb=new StringBuffer(str);System.out.printin(翻转后的字符串为:+sb.reverse()*/Java中的数组就是一组类型相同的有序数据集合,这些数 据按顺序存放在内存中一片连续的地址中。所有这些数据用一 个标识符命名,称为数组名,数组中的每个数据称为数组元素。数组的所有元素属于同一类型。最常见和常用的数组形式是一 维数组。多维数组的定义是通过对一维数组的嵌套式定义

28、来实 现的。对象数组是由同一个类的若干个实例组成的有序数据集 合。在java.util包中有专门用于操作数组的Arrays类。6.7习题1.给出以下代码。public class ArrayTest static int arr =new int 10;public static void main(String a )System.out.println(arr 1);下列结论中正确的是()。A.编译时将产生错误B.编译时正确,运行时将产生错误C.输出零D.输出空2.给出以下代码。public class StringTest public static void main(String a

29、rgs )String hello=Hello,Io=Io;System.out.print(hello=Hello)+);System.out.print(hello=(Hei+Io)+);System.out.print(hello=(Hei+Io)+);System.out.println(hello=(Hei+lo).intern();运行后,输出结果是什么?6.7习题O3.以下程序段运行后:String si=abc;String s2=abc;String s3=new StringCabc);boolean bl=(si=s2);boolean b2=(sl.equals(s2)

30、;boolean b3=(si=s3);boolean b4=(sl.equals(s3);布尔变量的值分别为:bl二_,b2二_,b3=_,b4 二4.以下程序段运行后:String strl二1空字符串String str2=null;空值字符串System.out.println(strl.equals(str2);System.out.println(strl=str2);输出结果是什么?为什么?6.8上机实践1.随机生成一个整数数组中的各个元素,该数组中共有10个元素,每个 元素的值都在099之间,输出该数组的元素并求其平均值。提示:利用 Math.random。方法可以生成一个随机小数x(0 xl)。2.编程找出【例6-1】的数组12,29,7,35,18,2,81,65 中的最大值和次大值及其下标。3.如果一个字符串正读和反读都一样,这个字符串就是一个回文字符串,如abcba。编写程序判断用户输入的字符串是否为回文字符串。4.Arrays类的sort。方法能将通过参数输入的数值型的数组元素按从小 到大的顺序进行排序。编写程序将【例6-1】的数组12,29,7,35,18,2,81,65中的元素按从大到小的顺序进行排序。谢谢观看!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 软件工程

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服