《第3章数组与字符串.ppt》由会员分享,可在线阅读,更多相关《第3章数组与字符串.ppt(20页珍藏版)》请在三一文库上搜索。
1、第3章 数组与字符串,3.1 在10个整数中找最大数 知识要点 一维数组的定义 一维数组的引用 一维数组的初始化 实例 编写程序,从命令行读入10个整数,找出其最大数并输出。,1详细设计 用for循环逐个访问数组,从而找出最大数。 2 编码实现 1) 数组定义 语句: int arr = new int10; 分析:该语句定义了一个有10个元素的整型数组arr,相当于定义了10个整型变量arr0、arr1、 arr9。注意下标从0开始,所以最后一个元素是arr9,而不是arr10。 2) 读入10个数并保存 语句: for (i=0;i10;i+) arri = Integer.parseIn
2、t(argsi); 分析:通过控制下标值可以方便地访问到每一个数组元素。 3) 找最大数 语句: for (i=0;i10;i+) if (maxarri) max = arri; 分析:数组的每一个元素不断与假设的最大数比较,从而找到最大的数。 3源代码 略。,4测试与运行,5技术分析,1) 一维数组的定义 一维数组的定义方式为: type arrayName; 或 type arrayName; 数组定义时并不为数组元素分配内存,用运算符new为数组分配内村空间。其格式如下: arr = new int10; 2) 一维数组元素的引用 数组元素的引用方式为: arrayNameindex
3、index为数组下标,下标从0开始,一直到数组的长度减1。对于上面例子中的arr数组来说,它有10个元素,分别是:arr0,arr1, . . . arr9。 每个数组都有一个属性length指明它的长度。 3) 一维数组的初始化 对数组元素可以按照本节实例的方式赋值,也可以在定义时对数组进行初始化,例如: int arr=1,2,3,4,5;,6. 问题与思考,用冒泡排序法,对命令行输入的20个数进行排序。,3.2 建立并输出一个矩阵,知识要点 多维数组的声明 多维数组初始化 多维数组的引用 实例 建立一个矩阵并输出。,1详细设计 class Matrix main() 定义并初始化一个二维
4、数组; 输出二维数组远素; 2 编码实现 1) 定义并初始化一个二维数组 语句: int a=1,2,3,4,5,6,7,8,9; 分析:与一维数组类似,在定义二维数组时,就可以对它进行初始化。 2) 输出二维数组远素 语句: for (int i=0;ia.length ;i+ ) for (int j=0;jai.length ;j+ ) System.out.print(aij+“ “); System.out.println(); 分析:矩阵有三行,每行结束后,需要换行,由System.out.println();实现。 3源代码 略。,4测试与运行,5技术分析,1) Java多维数组
5、的声明 以二维数组为例,多维数组声明格式如下: type arrayName; 或 type arrayName; 同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。例如: int map; char c; Java允许第二维的长度不同,如果需要第二维长度不一样的二维数组,可以使用如下的格式: int n; n = new int2; /只初始化第一维的长度 /分别初始化后续的元素 n0 = new int4; n1 = new int3; 2) 多维数组初始化 以二维数组的初始化为例,说明多维数组初始化的语法格式。示例代码如下: i
6、nt m = 1,2,3, 4,5,6, 7,8,9 ; 3) 多维数组的引用 对于二维数组来说,由于其有两个下标,所以引用数组元素值的格式为: arrayName第一维下标第二维下标 使用数组名.length获得的是数组第一维的长度。,6. 问题与思考,1) 请读者考虑三维数组的初始化格式。 2) 编写程序,实现任意阶拉丁矩阵的存储和输出。拉丁矩阵是一种规则的数值序列,例如4阶的拉丁矩阵如下所示: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 该矩阵中的数字很规则,在实际解决该问题时,只需要把数值的规律描述出来即可。 3) 编写程序,实现10行杨辉三角元素的存储以及输出。
7、杨辉三角是数学上的一个数字序列,该数字序列如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 该数字序列的规律为,数组中第一列的数字值都是1,后续每个元素的值等于该行上一行对应元素和上一行对应前一个元素的值之和。,3.3 Vector实现堆栈的压入和弹出操作,知识要点 堆栈的含义 Vector 实例 用Vector实现堆栈的压入和弹出操作。,1详细设计 class VectorStack 定义Vector对象; VectorStack() 初始化Vector对象; void push(Object obj) 把obj添到向量中; Object pop() 取出向量中最后一个对象
8、并返回; 2 编码实现 1) 把obj添到向量中; 语句: v.addElement(obj); 分析:Vector的addElement()实现把一个对象添加到向量中。 2) 取出向量中最后一个对象并返回; 语句: Object obj = v.lastElement(); if (v.size()0) v.removeElementAt(v.size()-1); else System.out.println(“栈空!“); return obj; 分析:Vector的方法lastElement()可以访问到向量的最后(栈顶)一个对象。返回该对象前,方法removeElementAt()删
9、除最后(栈顶)的对象实现弹出。 3源代码 略。,4测试与运行,编写下面的测试类: public class VectorStackTest public static void main(String args) VectorStack vs = new VectorStack(); vs.push(“1“); vs.push(“2“); vs.push(“3“); vs.push(“4“); vs.push(“5“); vs.push(“6“); for (int i = 0; i6; i+) vs.pop(); ,5技术分析,1) 堆栈 堆栈是一种数据结构,按先进后出(First In L
10、ast Out, FILO)的方式工作,堆栈指针总是指向栈顶。 堆栈最普通的两项操作是压入和弹出,压入(PUSH)指令把源操作数存压入的顶部,弹出(POP)指令把栈顶数据即最后存入的数据取出。 2) Vector Vector 也称为向量,提供了实现可变长数组的功能,随着更多元素的加入,数组变得更大。删除一些元素之后,数组变小。,6. 问题与思考,编写程序,实现中缀表达式转换为后缀表达式。,3.4 字符串操作,知识要点 获取字符串对象信息 字符串的比较和操作 修改可变字符串等。 实例 编写程序,对字符串进行连接、截取子串、求字符串长度、子串位置操作。,1详细设计 class StringDem
11、o main(String arg) 常量变量定义; 字符串连接并输出结果; 截取子串并输出; 求字符串长度并输出; 求子串位置并输出; 2 编码实现 1) 字符串连接并输出结果 语句: String str = str1.concat(str2); System.out.println(“str1和str2的连接结果str是:“+str); 分析:String的方法concat()实现字符串的连接。第二条输出语句中的“+“这里不再是实现加法的运算符,而是起到类似方法concat()实现字符串连接的功能。 2) 截取子串并输出 语句: System.out.println(“str截取子串结果
12、:“+str.substring(5); 分析:方法substring(int beginIndex)实现从beginIndex处开始到末尾截取子串。 3) 求字符串长度并输出 语句: System.out.println(“str的长度是:“+str.length(); 分析:方法length()求字符串长度。 4) 求子串位置并输出 语句: System.out.println(“world在str中的位置是:“+str.indexOf(“World“); 分析:方法indexOf()求子串位置。 3源代码 略。,4测试与运行,5技术分析,1) 得到字符串对象的有关信息 通过调用lengt
13、h()方法得到String的长度. StringBuffer类的capacity()方法与String类的length()的方法类似,但它是测试分配给StringBuffer的内存空间的大小,而不是当前被使用了的内存空间。 如果想确定字符串中指定字符或子字符串在给定字符串的位置,可以用indexOf()和lastIndexOf()方法。 2) 对象的比较和操作 String 对象的比较 String类的equals()方法用来确定两个字符串是否相等。 String对象的访问 方法charAt()用以得到指定位置的字符。 操作字符串 replace()方法可以将字符串中的一个字符替换为另一个字符。 3) 修改可变字符串 append()方法用于在字符串后面追加字符串。 insert()方法用与在字符串中间插入字符串。 改变某个位置所在的字符,用setCharAt()方法。,6. 问题与思考,编写程序,任意输入一个字符串,从最后一个字符开始倒序输出它。,
链接地址:https://www.31doc.com/p-2254778.html