1、卓越系列教材卓越系列教材-Java程序设计实践教程程序设计实践教程授课单位:信电工程学院计算机科学与计算教研室授课单位:信电工程学院计算机科学与计算教研室授课教师:授课教师:胡局新胡局新第第3章章 Java数组和字符串数组和字符串JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串本章学习要点与训练目标本章学习要点与训练目标 掌握掌握Java中数组的概念、声明、创建、初始化和使用方法;中数组的概念、声明、创建、初始化和使用方法;掌握掌握Java中中String类、类、StringBuff
2、er类中的有关方法应用类中的有关方法应用 熟练运用数组和字符串的有关方法进行程序编制。熟练运用数组和字符串的有关方法进行程序编制。JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.1 数组的概念数组的概念 为什么要使用数组?为什么要使用数组?【案例【案例3-1】如何使用数组?如何使用数组?怎么声明和创建数组?怎么声明和创建数组?JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字
3、符串3.2 一维数组一维数组 3.2.1 一维数组的声明与创建一维数组的声明与创建 声明一维数组有两种格式:声明一维数组有两种格式:数组元素类型数组元素类型 数组名数组名;/格式一格式一 数组元素类型数组元素类型 数组名数组名;/格式二格式二 创建数组的格式:创建数组的格式:new 数组名数组名;声明和创建数组一次完成,格式如下:声明和创建数组一次完成,格式如下:数组元素类型数组元素类型 数组名数组名=new 数组名数组名;JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.2 一维
4、数组一维数组 3.2.2 一维数组的初始化一维数组的初始化 例如:例如:int num=2,5,4,1;这个初始化动作相当于执行了以下两个语句:这个初始化动作相当于执行了以下两个语句:int num=new int 4;num 0=2;num 1=5;num 2=4;num 3=1;JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.2 一维数组一维数组 3.2.3 一维数组的使用一维数组的使用 数组的访问数组的访问 数组的复制数组的复制 一维数组中元素的个数一维数组中元素的个数:数
5、组名数组名.length【案例【案例3-1】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.3 二维数组二维数组 3.3.1 二维数组的声明与创建二维数组的声明与创建 一、直接法一、直接法 或或 或或 =new 行数行数列数列数 JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.3 二维数组二维数组 3.3.1 二维数组的声明与创建二维数组的声明与创建 二、逐维法二、
6、逐维法 或或 或或 =new m 0=new n01=new n12=new n2m-1=new nm-1 JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.3 二维数组二维数组 3.3.2 二维数组的初始化二维数组的初始化 用用new初始化初始化数组名数组名=new 数组元素的类型数组元素的类型 数组的行数数组的行数数组的列数数组的列数;用赋初值方式初始化用赋初值方式初始化类型类型 数组名数组名=初值表初值表1,初值表初值表2,初值表初值表n;3.3.3 二维数组的使用二维数组的
7、使用 二维数组元素个数使用二维数组元素个数使用length来确定来确定行数:数组名行数:数组名.length 列数:数组名列数:数组名行号行号.length 【案例案例3-3】、【案例、【案例3-4】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.4 多维数组多维数组 二维及其以上的数组称为多维数组。二维及其以上的数组称为多维数组。Java中多维数组实际上是数组的数组。中多维数组实际上是数组的数组。要声明三维及其以上的多维数组,只要在声明数组时,加上相应的要声明三维及其以上的多维
8、数组,只要在声明数组时,加上相应的一对对中括号即可。例如,用一对对中括号即可。例如,用int A声明三维整型数组,用声明三维整型数组,用float B声明四维浮点型数组,声明四维浮点型数组,以此类推。,以此类推。【案例【案例3-5】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.5 Java新特性对数组的支持新特性对数组的支持 从从JDK5.0开始,开始,Java有了增强的有了增强的for循环语法格式:循环语法格式:for()System.out.println();【案例案例3
9、-6】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.6 数组操作数组操作 复制数组的方法复制数组的方法 在在Java中可以使用中可以使用arraycopy()方法来复制数组。其格式如下:方法来复制数组。其格式如下:System.arraycopy(sArray,int srcPos,dArray,int destPos,int length)【案例【案例3-7】数组元素的排序方法数组元素的排序方法 对于数组元素的排序,除了程序员自己编制排序程序外,在对于数组元素的排序,除了程序
10、员自己编制排序程序外,在Java.uitl包中包中的的Arrays类里提供了可以对各种数据类型进行排序的类里提供了可以对各种数据类型进行排序的sort()方法。例如,对方法。例如,对int型的数据进行排序的方法格式分别为:型的数据进行排序的方法格式分别为:public static void sort(int a)public static void sort(int a,int fromP,int toP)【案例【案例3-8】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.6
11、数组操作数组操作 数组元素的查找方法数组元素的查找方法 在在Arrays类中,提供了类中,提供了binarySearch()方法用于在指定数组中查找指定的方法用于在指定数组中查找指定的数据。指定数组在被调用之前必须对其进行排序。如果数组包含多个带有数据。指定数组在被调用之前必须对其进行排序。如果数组包含多个带有指定值的元素,则找到的是第一个出现的位置。查找可以对各种数据类型指定值的元素,则找到的是第一个出现的位置。查找可以对各种数据类型进行。例如,对进行。例如,对int型的数据进行查找的方法格式为:型的数据进行查找的方法格式为:public static int binarySearch(in
12、t a,int val)【案例【案例3-9】数组元素的填充方法数组元素的填充方法 Arrays类提供的类提供的fill方法,用确定的数值来填充数组中指定的每个元素。其方法,用确定的数值来填充数组中指定的每个元素。其中的数组可以是类型为中的数组可以是类型为char、byte、short、int、long、float、double或或者者boolean等数组。例如,整型数组元素填充的两种方法格式分别为:等数组。例如,整型数组元素填充的两种方法格式分别为:public static void fill(int a,int val)public static void fill(int a,int f
13、romP,int toP,int val)【案例【案例3-10】JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 字符串的声明与创建字符串的声明与创建声明声明字符串的格式是:字符串的格式是:String stringName;创建创建字符串的格式是:字符串的格式是:stringName=new String(字符串常量字符串常量);或或stringName=字符串常量字符串常量;JAVA程序设计实践教程程序设计实践教程祝您学习成功
14、!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 与字符串有关的方法与字符串有关的方法(1)确定字符串的长度)确定字符串的长度public int length()(2)取得字符串中的某个字符)取得字符串中的某个字符public char charAt(int index)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类
15、类 与字符串有关的方法与字符串有关的方法(3)取得字符串中的子串)取得字符串中的子串public String substring(int beginIndex)public String substring(int beginIndex,int endIndex)(4)字符串内容的比较)字符串内容的比较public int compareTo(String stringName2)public int compareToIgnoreCase(String stringName2)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团
16、队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 与字符串有关的方法与字符串有关的方法(5)字符串连接)字符串连接public String concat(String stringName2)(6)字符串检索)字符串检索public int indexOf(int ch)public int indexOf(int ch,int fromIndex)public int indexOf(String stringName2)public int indexOf(String stringName2,int fromIndex)JAVA程序设
17、计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 与字符串有关的方法与字符串有关的方法(7)字符数组转换为字符串)字符数组转换为字符串public static String copyValueOf(char ch1)public static String copyValueOf(char ch1,int cBegin,int cCount)(8)字符串转换为字符数组)字符串转换为字符数组public void getChars(int sB
18、egin,int sEnd,char ch1,int dBegin)public char toCharArray()JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 与字符串有关的方法与字符串有关的方法(9)将其他数据类型转换为字符串)将其他数据类型转换为字符串public static String valueOf(boolean b)public static String valueOf(char c)public sta
19、tic String valueOf(int i)public static String valueOf(long L)public static String valueOf(float f)public static String valueOf(double d)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.1 String类类 与字符串有关的方法与字符串有关的方法(10)字符串大小写转换)字符串大小写转换public String toU
20、pperCase()public String toLowerCase()(11)字符串内容的替换)字符串内容的替换public String replace(char oldChar,char newChar)(12)删除字符串的前导空白和尾部空白)删除字符串的前导空白和尾部空白public String trim()JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类对象的声明与创建类对象的
21、声明与创建 声明声明StringBuffer类的对象的格式类的对象的格式StringBuffer stringBufferName;创建创建StringBuffer对象的格式:对象的格式:stringBufferName=new StringBuffer(字符串常量字符串常量)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类中常用的方法类中常用的方法(1)字符串缓冲区数据转换为字符串)字符串
22、缓冲区数据转换为字符串public String toString()(2)添加字符)添加字符public StringBuffer append(Object obj)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类中常用的方法类中常用的方法(3)插入字符)插入字符public StringBuffer insert(int insertP,boolean bv)public String
23、Buffer insert(int insertP,char cv)public StringBuffer insert(int insertP,charcv,int beginP,int length)public StringBuffer insert(int insertP,int iv)public StringBuffer insert(int insertP,long lv)public StringBuffer insert(int insertP,float fv)public StringBuffer insert(int insertP,double dv)public S
24、tringBuffer insert(int insertP,String sv)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类中常用的方法类中常用的方法(4)替换字符)替换字符public StringBuffer replace(int startP,int endP,String stringv)(5)删除字符)删除字符public StringBuffer delete(int s
25、tartP,int endP)public StringBuffer deleteCharAt(int indexP)JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类中常用的方法类中常用的方法(6)清空字符串)清空字符串public void setLength(int newLength)(7)取字符)取字符 public char charAt(int index)JAVA程序设计实践教
26、程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.2 StringBuffer类类 StringBuffer类中常用的方法类中常用的方法(8)取子串)取子串public String substring(int startP)public String substring(int startP,int endP)(9)字符串反转)字符串反转public StringBuffer reverse()【案例案例3-11】以上方法应用案例。以上方法应用案例。JAVA程序设计实践教程程序设计实践教程祝您学习成功!祝您学习成功!Java程序设计实践教程程序设计实践教程编者团队编者团队第第3章章 数组和字符串数组和字符串3.7 字符串类字符串类 3.7.3 字符串数组字符串数组 字符串数组的声明格式:字符串数组的声明格式:String stringName=new String;或或 String stringName=new String;【案例案例3-12】