版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 数组数组 才干要求才干要求了解数组的概念了解数组的概念掌握一维数组的声明、创建、初始化和掌握一维数组的声明、创建、初始化和运用运用掌握二维数组的声明、创建、初始化和掌握二维数组的声明、创建、初始化和运用运用掌握字符串和数值相互转化的方法掌握字符串和数值相互转化的方法了解了解StringString类的常用方法类的常用方法了解了解StringBufferStringBuffer类的常用方法类的常用方法 4.1 一维数组一维数组4.1.1 一维数组的声明一维数组的声明 声明一维数组的格式有两种:声明一维数组的格式有两种:1 1数组元素类型数组元素类型 数组名数组名 ; 2 2数组元
2、素类型数组元素类型 数组名;数组名; 例如:声明例如:声明intint类型数组类型数组a a的语句如下:的语句如下: int a ; / int a ; / 数组元素类型数组元素类型 数组名数组名 ;或者或者 int a; / int a; / 数组元素类型数组元素类型 数组名;数组名;4.1.1 4.1.1 一维数组的声明一维数组的声明 声明字符串数组的语句如下声明字符串数组的语句如下: : String b ; String b ;或者或者 String b; String b; 又如又如 public static void main(String args ) public stati
3、c void main(String args ) 中:中: String args String args 或者或者 String args String args4.1.2 4.1.2 一维数组的创建一维数组的创建 数组是在运转时动态创建的。在以new创建数组时,可以指定数组的类型和数组元素的个数。例如:int a =new int7;也可以将数组的声明和创建分开来执行: int a ; / 声明数组a=new int7; / 创建数组4.1.3 一维数组的初始化一维数组的初始化 数组的初始化可以经过两种方式来完成:数组的初始化可以经过两种方式来完成:1 1在定义数组的同时进展初始化这种方
4、式相当于曾经为在定义数组的同时进展初始化这种方式相当于曾经为数组分配了内存空间。其语法方式如下:数组分配了内存空间。其语法方式如下:数组元素类型数组元素类型 数组名数组名 = =数组元素数组元素1 1的初值的初值,数组元素数组元素2 2的初值的初值, , 方括号表示可选项。方括号表示可选项。例如:例如:int a =3,6,2,8;int a =3,6,2,8;上述语句创建了一个包含四个元素的数组上述语句创建了一个包含四个元素的数组a a,四个元素分别是,四个元素分别是3 3、6 6、2 2和和8 8。 4.1.3 一维数组的初始化一维数组的初始化 2 2先用先用newnew来配置数组的长度,
5、然后再用赋值语句为每个来配置数组的长度,然后再用赋值语句为每个元素设置初值。元素设置初值。int a = new int4;int a = new int4;a0 = 3;a0 = 3;a1 = 6;a1 = 6;a2 = 2;a2 = 2;a3 = 8;a3 = 8;4.1.4 一维数组的援用一维数组的援用 格式如下:格式如下: 数组名数组名 数组下标数组下标 留意留意: :数组下标从数组下标从0 0开场,开场,a0a0表示数组表示数组a a的第一个元素,的第一个元素,a1a1表示数组表示数组a a的第二个元素,依此类推。的第二个元素,依此类推。a.lengtha.length表示数组表示数
6、组a a的的长度,即数组长度,即数组a a中元素的总数,中元素的总数,aa.length-1aa.length-1表示数组表示数组a a的最的最后一个元素。例如:数组后一个元素。例如:数组a a有有4 4个元素,那么个元素,那么a.lengtha.length的值为的值为4 4,数组下标从数组下标从0 0到到3 3。例例4.1 4.1 一维数组的初始化与输出。书上一维数组的初始化与输出。书上 47 47 页页/文件名:文件名:ArrayExample.javaArrayExample.javapublic class ArrayExamplepublic class ArrayExample
7、public static void main(String args ) public static void main(String args ) int f =new int4; int f =new int4; int j; int j; int a = new int3; int a = new int3; a0 = 2; a0 = 2; a1 = 3+5; a1 = 3+5; a2 = 4 a2 = 4* *8; 8; 例例4.1 4.1 一维数组的初始化与输出。一维数组的初始化与输出。/文件名:文件名:ArrayExample.javaArrayExample.java Syst
8、em.out.println(a1=+a1); System.out.println(a1=+a1); System.out.println( System.out.println(数组数组f f:);); for (j=0;jf.length;j+) /j=0,1,2,3 for (j=0;jf.length;j+) /j=0,1,2,3 fj=j; fj=j; System.out.print(fj+ ); System.out.print(fj+ ); 运转结果如下运转结果如下: :a1=8a1=8数组数组f f:0 1 2 3 0 1 2 3 停顿停顿5分钟,让学生看书、例分钟,让学生
9、看书、例4.1。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 / /文件名:文件名:Sort.javaSort.javapublic class Sortpublic class Sort public static void main(String args ) public static void main(String args ) int i,j,k,temp; int i,j,k,temp; int a =31,23,47,19,52,96,85,74; int a =31,23,47,19,52,96,85,74;请思索:请思索:1.怎样声明和创
10、建数组怎样声明和创建数组a,使得数组,使得数组a的长度是的长度是8?2.如何从键盘输入数据来初始化数组?如何从键盘输入数据来初始化数组?例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 / /文文件名:件名:Sort.javaSort.javaint a =31,23,47,19,52,96,85,74;int a =31,23,47,19,52,96,85,74;for (i=0;ia.length-1;i+)for (i=0;ia.length-1;i+) for (j=i+1;ja.length;j+) for (j=i+1;ja.length;j+) i
11、f (aiaj) if (aiaj) temp=ai; temp=ai; ai=aj; ai=aj; aj=temp; aj=temp; 第一趟比较:第一趟比较:i=0,j=1,2,7i=0,j=1,2,7a0a0与与a1a1比较比较a0a0与与a2a2比较比较a0a0与与a7a7比较比较第一趟比较后,第一趟比较后,a0a0中存放中存放的是的是8 8个数中最大的数。个数中最大的数。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 / /文文件名:件名:Sort.javaSort.javaint a =31,23,47,19,52,96,85,74;int a =
12、31,23,47,19,52,96,85,74;for (i=0;i a.length-1;i+)for (i=0;i a.length-1;i+) for (j=i+1;j a.length;j+) for (j=i+1;j a.length;j+) if (aiaj) if (aiaj) temp=ai; temp=ai; ai=aj; ai=aj; aj=temp; aj=temp; 第二趟比较:第二趟比较:i=1,j=2,7i=1,j=2,7a1a1与与a2a2比较比较a1a1与与a3a3比较比较a1a1与与a7a7比较比较第二趟比较后,第二趟比较后,a1a1中存放中存放的是剩下的的是
13、剩下的7 7个数中最大的个数中最大的数。数。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 / /文件名:文件名:Sort.javaSort.javaSystem.out.println(System.out.println(排序后的数组:排序后的数组:);); for (k=0;ka.length;k+) for (k=0;ka.length;k+) System.out.print(ak+ System.out.print(ak+ “); “); 运转结果如下运转结果如下: :排序后的数组:排序后的数组:96 85 74 52 47 31 23 1996
14、85 74 52 47 31 23 19例例4.2请思索:请思索:1.怎样声明和创建数组怎样声明和创建数组a,使得数组,使得数组a的长度是的长度是8?2.如何从键盘输入数据来初始化数组?如何从键盘输入数据来初始化数组?import java.util.Scanner; /import java.util.Scanner; /加加public class Sortpublic class Sort public static void main(String args ) public static void main(String args ) int i,j,k,temp; int i,j,
15、k,temp; /int a =31,23,47,19,52,96,85,74; / /int a =31,23,47,19,52,96,85,74; /去掉此句去掉此句/以下是加的内容:以下是加的内容:/声明和创建数组声明和创建数组a a,使得数组,使得数组a a的长度是的长度是8 8。留意:与。留意:与C C言语不同。言语不同。 int a =new int8; int a =new int8; / /从键盘输入数据来初始化数组从键盘输入数据来初始化数组 System.out.println( System.out.println(请输入数组请输入数组a a中的中的8 8个元素整数,个元素
16、整数,整数之间可以用空格或回车分隔:整数之间可以用空格或回车分隔:);); Scanner s=new Scanner(System.in); Scanner s=new Scanner(System.in); for (i=0;ia.length;i+) for (i=0;ia.length;i+) ai=s.nextInt( ); ai=s.nextInt( ); / /加的内容到此为止加的内容到此为止 for (i=0;ia.length-1;i+) for (i=0;ia.length-1;i+) / /省略省略编程实际编程实际: :6161页页 习题四习题四 4.1 4.1题题 下面
17、是一个数组的定义:下面是一个数组的定义:int a =72,49,85,16,94,30,51,22int a =72,49,85,16,94,30,51,22试编写一个程序,把数组元素按照从小到大的顺序试编写一个程序,把数组元素按照从小到大的顺序排序,并输出排序后的数组元素。排序,并输出排序后的数组元素。参考:参考:47-48 47-48 页页 例例4.24.2编程实际编程实际: :6161页页 习题四习题四 4.1 4.1题题 ( (红字为与例红字为与例4.24.2不同的地方不同的地方) )public class T4_1public class T4_1 public static v
18、oid main(String args ) public static void main(String args ) int i,j,k,temp; int i,j,k,temp; int a =72,49,85,16,94,30,51,22; int a =72,49,85,16,94,30,51,22;编程实际编程实际: :6161页页 习题四习题四 4.1 4.1题题 for (i=0;ia.length-1;i+)for (i=0;ia.length-1;i+) for (j=i+1;ja.length;j+) for (j=i+1;jaj) if (aiaj) temp=ai;
19、temp=ai; ai=aj; ai=aj; aj=temp; aj=temp; 编程实际编程实际: :6161页页 习题四习题四 4.1 4.1题题 System.out.println(System.out.println(排序后的数组:排序后的数组:);); for (k=0;ka.length;k+) for (k=0;ka.length;k+) System.out.print(ak+ ); System.out.print(ak+ ); 4.2 4.2 二维数组二维数组二维数组的声明、初始化和援用与一维数组类似。二维数组的声明、初始化和援用与一维数组类似。 4.2.1 4.2.1
20、二维数组的声明二维数组的声明二维数组声明的格式为:二维数组声明的格式为: 数组元素类型数组元素类型 数组名数组名 ;或者:或者: 数组元素类型数组元素类型 数组名;数组名;例如,声明一个单精度型二维数组:例如,声明一个单精度型二维数组: float a ; float a ; 或者:或者: float a; float a;4.2 4.2 二维数组二维数组4.2.2 4.2.2 二维数组的创建二维数组的创建 格式如下:格式如下: 数组名数组名=new =new 类型类型 行行列列;例如,创建一个例如,创建一个2 2行行3 3列的二维数组:列的二维数组:int a ; / int a ; / 声
21、明二维数组声明二维数组 a=new int23; / a=new int23; / 创建二维数组创建二维数组 4.2 4.2 二维数组二维数组4.2.3 4.2.3 二维数组的初始化二维数组的初始化二维数组可以在声明中用初始化值进展初始化。二维数组可以在声明中用初始化值进展初始化。例如,初始化一个例如,初始化一个2 2行行3 3列的二维数组:列的二维数组:int a =3,4,5,6,7,8; int a =3,4,5,6,7,8; 4.2.4 4.2.4 二维数组的援用二维数组的援用格式如下:格式如下:数组名数组名 数组下标数组下标11数组下标数组下标2 2 例例4.4 4.4 求二维数组中
22、一切数的最大值。求二维数组中一切数的最大值。 /文件名:文件名:Max2.javaMax2.javapublic class Max2public class Max2 public static void main(String args) public static void main(String args) int max,i,j; int max,i,j; int a=2,84,57,16,89,48; int a=2,84,57,16,89,48;/ 2 84/ 2 84/57 16/57 16/89 48/89 48例例4.4 4.4 求二维数组中一切数的最大值。求二维数组中一切
23、数的最大值。 max=a00;max=a00; for (i=0;i3;i+) for (i=0;i3;i+) for (j=0;j2;j+) for (j=0;jmax) if (aijmax) max=aij; max=aij; System.out.println(max=+max); System.out.println(max=+max); 运转结果如下运转结果如下: :max=89max=89编程实际编程实际: :6161页页 习题四习题四 4.2 4.2题题定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。 参考:参考: 51 51 页页 例例4.44.4习
24、题四习题四 4.2 4.2题题定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。 ( (红字为与例红字为与例4.44.4不同的地方不同的地方) ) public class t4_2public class t4_2 public static void main(String args) public static void main(String args) int s=0;int s=0; int max,i,j; int max,i,j; int a=2,84,57,16,89,48; int a=2,84,57,16,89,48; / max=a00; / ma
25、x=a00;习题四习题四 4.2 4.2题题 定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。 for (i=0;i3;i+)for (i=0;i3;i+) for (j=0;j2;j+) for (j=0;j=2)我们从我们从Fibonacci数列的计算公式可以看出数列的计算公式可以看出Fibonacci数列一点数列一点也不复杂。也不复杂。 例如:例如: F2=F1 +F0 F3=F2+F1。编程实现:编程实现:数组数组fnf0=1,f1=1fi=fi-1+fi-2 用循环实现用循环实现 编程实际:计算编程实际:计算FibonacciFibonacci数列第数列第8
26、8项的值,项的值,并输出前并输出前8 8项的值。项的值。 public class Fibonacci public static void main(String args) int n=8; int i; int f =new intn; f0=1; f1=1; for (i=2;in;i+) fi=fi-1+fi-2; for (i=0;in;i+) System.out.println(fi); 4.3 String 4.3 String 类类4.3.1 4.3.1 创建字符串常量创建字符串常量 (1) public String(1) public StringString strS
27、tring str利用一个已存在的字符串常量创建一个新的利用一个已存在的字符串常量创建一个新的StringString对象,该对象,该对象的内容为知的字符串常量。对象的内容为知的字符串常量。创建创建StringString对象分为对象的声明和创建两步。这两步可以分对象分为对象的声明和创建两步。这两步可以分成两个独立的语句。例如:成两个独立的语句。例如:String str1;String str1;str1=new String(Java);str1=new String(Java);也可以在一个语句中完成,例如:也可以在一个语句中完成,例如:String str1=new String(Ja
28、va);String str1=new String(Java);也可写成:也可写成:String str1= Java; String str1= Java; 4.3.1 4.3.1 创建字符串常量创建字符串常量 2 2public String(char a )public String(char a )用一个字符数组用一个字符数组a a创建一个字符串对象。例如:创建一个字符串对象。例如:char a4=g,o,o,d;char a4=g,o,o,d;String str2=new String(a); /str2String str2=new String(a); /str2是是good
29、good4.3.1 4.3.1 创建字符串常量创建字符串常量 3 3public String(char a, int startIndex, int public String(char a, int startIndex, int endIndex)endIndex)用字符数组的一部分创建一个字符串对象。参数用字符数组的一部分创建一个字符串对象。参数startIndexstartIndex指指明提取明提取a a中字符的开场位置,中字符的开场位置,endIndexendIndex指明提取指明提取a a中字符的终了中字符的终了位置不包括位置不包括endIndexendIndex所指终了位置。例
30、如:所指终了位置。例如:char char a =h,w,o,r,k,a,r,d;a =h,w,o,r,k,a,r,d;String str3=new String(a,1,5);/str3String str3=new String(a,1,5);/str3是是work work 4.3.2 4.3.2 字符串转化为相应类型数值字符串转化为相应类型数值 ( ( 经常用到。用到时,可以查阅本节内容。经常用到。用到时,可以查阅本节内容。 留意大小写留意大小写 ) )(1) (1) 字符串转化为整型字符串转化为整型intint数值数值格式:格式:Integer.parseInt(String st
31、r)Integer.parseInt(String str)例如:例如: Integer.parseInt(628); Integer.parseInt(628);把字符串把字符串“628“628转化为整转化为整型型intint数值数值又如把字符串又如把字符串str1str1转为整型转为整型intint,然后赋给一个整型变量:,然后赋给一个整型变量:String str1=210;String str1=210;int a,b;int a,b;a=Integer.parseInt(str1); a=Integer.parseInt(str1); 红字为大写字符红字为大写字符4.3.2 4.3.
32、2 字符串转化为相应类型数值字符串转化为相应类型数值 ( ( 经常用到。用到时,可以查阅本节内容。经常用到。用到时,可以查阅本节内容。 留意大小写留意大小写 ) )(2) (2) 字符串转化为字符串转化为LongLong型数值型数值格式:格式:Long.parseLong(String str) Long.parseLong(String str) 例如:把字符串例如:把字符串“54321“54321 转化为转化为LongLong型数值型数值Long.parseLong(54321); Long.parseLong(54321); (3) (3) 字符串转化为浮点型字符串转化为浮点型float
33、float数值数值格式:格式:Float.parseFloat(String str)Float.parseFloat(String str)例如:把字符串例如:把字符串“3.14“3.14 转化为转化为floatfloat型数值型数值Float.parseFloat(3.14)Float.parseFloat(3.14)(4) (4) 字符串转化为双精度型字符串转化为双精度型doubledouble数值数值格式:格式: Double.parseDouble(String str) Double.parseDouble(String str)例如:把字符串例如:把字符串“198.72“198.
34、72 转化为双精度型转化为双精度型doubledouble数值数值 Double. parseDouble(198.72) Double. parseDouble(198.72)4.3.3 4.3.3 数值转化为字符串数值转化为字符串 ( ( 经常用到经常用到 。用到时,可以查阅本节内容。用到时,可以查阅本节内容。 留意大小写留意大小写 ) )例如:把数值例如:把数值198.72198.72转化为字符串转化为字符串“198.72“198.72String.valueOf(198.72);String.valueOf(198.72);又如:又如:int a=572;int a=572;Strin
35、g s;String s;s=String.valueOf(a); s=String.valueOf(a); 4.3.4 String4.3.4 String类中的方法类中的方法( ( 用到时,可以查阅本节内容。用到时,可以查阅本节内容。) )(1) (1) 求字符串的长度求字符串的长度public int length( );public int length( );例如:例如:String s1=book;String s1=book;i=s1.length( ); /ii=s1.length( ); /i的值是的值是4 44.3.4 String4.3.4 String类中的方法类中的方
36、法( ( 用到时,可以查阅本节内容。用到时,可以查阅本节内容。) )(2) (2) 求字符串的子字符串求字符串的子字符串public String substring(int begin) ;public String substring(int begin) ;抽取从参数抽取从参数beginbegin所指定的字符位置开场包括此位置直到该所指定的字符位置开场包括此位置直到该字符串终了处的一切字符。字符串终了处的一切字符。public String substring(int begin, int end);public String substring(int begin, int end);
37、抽取从参数抽取从参数beginbegin所指定的字符位置开场包括此位置到参数所指定的字符位置开场包括此位置到参数endend所指定位置所指定位置( (不包括此位置不包括此位置) )为止的子串。为止的子串。留意:字符串的位置是从留意:字符串的位置是从0 0开场计数的。开场计数的。 4.3.4 String4.3.4 String类中的方法类中的方法( ( 用到时,可以查阅本节内容。用到时,可以查阅本节内容。) )例如:例如:String s1=He plays football,s2,s3;String s1=He plays football,s2,s3;s2=s1.substring(3);
38、 /s2s2=s1.substring(3); /s2是是plays football);plays football);s3=s1.substring(3,7); /s3s3=s1.substring(3,7); /s3是是play; play; 4.3.4 String4.3.4 String类中的方法类中的方法( ( 用到时,可以查阅本节内容。用到时,可以查阅本节内容。) )(3) (3) 字符串的衔接字符串的衔接public String concat(String str);public String concat(String str);将字符串将字符串strstr衔接到当前字符串
39、的后面,得到一个新字符串,并衔接到当前字符串的后面,得到一个新字符串,并前往这个新字符串,但当前字符串并没有改动。前往这个新字符串,但当前字符串并没有改动。实践上,对于实践上,对于StringString类中的方法,一切改动字符串的结果都是类中的方法,一切改动字符串的结果都是生成新的字符串,而没有改动原来的字符串。生成新的字符串,而没有改动原来的字符串。 【例【例4.54.5】 字符串衔接编程举例。字符串衔接编程举例。/文件名:文件名:ConcatStr.javaConcatStr.javapublic class ConcatStrpublic class ConcatStr public
40、static void main(String args ) public static void main(String args ) String s1=Good ,s2=morning,s3; String s1=Good ,s2=morning,s3; s3=s1.concat(s2); s3=s1.concat(s2); System.out.println( System.out.println(衔接前,衔接前,s1=+s1+ s2=+s2);s1=+s1+ s2=+s2); System.out.println(s1.concat(s2)=+s1.concat(s2); Syst
41、em.out.println(s1.concat(s2)=+s1.concat(s2);/ / 衔接前,衔接前,s1=Good s2=mornings1=Good s2=morning / s1.concat(s2)=Good morning / s1.concat(s2)=Good morning 【例【例4.54.5】 字符串衔接编程举例。字符串衔接编程举例。System.out.println(System.out.println(衔接后,衔接后,s1=+s1+ s2=+s2);s1=+s1+ s2=+s2); System.out.println(s3=s1.concat(s2)=+s
42、3); System.out.println(s3=s1.concat(s2)=+s3); / / 衔接后,衔接后,s1=Good s2=morning s1=Good s2=morning / s3=s1.concat(s2)=Good morning / s3=s1.concat(s2)=Good morning (4) (4) 比较两个字符串比较两个字符串 public boolean equals(String str); public boolean equals(String str); 常用常用将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,假设两个字符串的内容
43、一比较,假设两个字符串的内容一样,那么前往样,那么前往truetrue,否那么前往,否那么前往falsefalse。 请思索:比较两个字符串的内容能否相等,请思索:比较两个字符串的内容能否相等, 1 1用用 = = 判别吗?判别吗?2 2用用 equals( ) equals( )判别?判别?阐明:阐明:“=“=: :用于用于String,String,=测试的是测试的是StringString在内存中的援在内存中的援用地址能否相等。用地址能否相等。equals( ):equals( ):测试两个字符串的内容能否一样。测试两个字符串的内容能否一样。答:比较两个字符串的内容能否相等答:比较两个字
44、符串的内容能否相等2用用 equals( )判别判别 (4) (4) 比较两个字符串比较两个字符串 public boolean equals(String str); public boolean equals(String str); 常用常用将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,假设两个字符串的内容一比较,假设两个字符串的内容一样,那么前往样,那么前往truetrue,否那么前往,否那么前往falsefalse。 阐明:阐明:“=“=: :用于用于String,String,=测试的是测试的是StringString在内存中的在内存中的援用地址能否相等。援用地
45、址能否相等。equals( ):equals( ):测试两个字符串的内容能否一样。测试两个字符串的内容能否一样。举例:举例:Equals2.javaEquals2.java (4) (4) 比较两个字符串比较两个字符串 public boolean equals(String str); public boolean equals(String str); 常用常用将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,假设两个字符串的内容一比较,假设两个字符串的内容一样,那么前往样,那么前往truetrue,否那么前往,否那么前往falsefalse。public boolean
46、equalsIgnoreCase(String str);public boolean equalsIgnoreCase(String str);与与equals( )equals( )方法类似,但忽略大小写。方法类似,但忽略大小写。public int compareTo(String str)public int compareTo(String str)按字典序将当前字符串按字典序将当前字符串s s与参数字符串与参数字符串strstr比较大小。假设比较大小。假设s s按字按字母序与母序与strstr完全一样,该方法前往完全一样,该方法前往0 0;假设按字母序;假设按字母序s s大于大于s
47、trstr,那么该方法前往一个大于那么该方法前往一个大于0 0的整数;假设按字母序的整数;假设按字母序s s小于小于strstr,那,那么该方法前往一个小于么该方法前往一个小于0 0的整数。的整数。 (4) (4) 比较两个字符串比较两个字符串 public int compareToIgnoreCase(String str); public int compareToIgnoreCase(String str);与与compareTo( )compareTo( )方法类似,但忽略大小写。方法类似,但忽略大小写。例如:例如:String s1=basic,s2=java,s3=Basic;S
48、tring s1=basic,s2=java,s3=Basic;s1.equals(s2)s1.equals(s2)的值是的值是falsefalse。s1pareTo(s2)s1pareTo(s2)的值小于的值小于0 0。s1pareToIgnoreCase(s3)s1pareToIgnoreCase(s3)的值是的值是0 0。 (5) (5) 交换字符串中的字符交换字符串中的字符 public String replace(char old,char new); public String replace(char old,char new);用参数用参数new new 指定的字符交换由参数
49、指定的字符交换由参数old old 指定的一切字符。指定的一切字符。例如:例如:String s1=bad bag,s2;String s1=bad bag,s2;S2=s1.replace(a,e);/s2S2=s1.replace(a,e);/s2是是bed beg bed beg (6) (6) 判别字符串的前缀或后缀能否是知的字符串判别字符串的前缀或后缀能否是知的字符串 public boolean startsWith(String str); public boolean startsWith(String str);判别一个字符串前缀能否是字符串判别一个字符串前缀能否是字符串st
50、rstr。public boolean endsWith(String str);public boolean endsWith(String str);判别一个字符串后缀能否是字符串判别一个字符串后缀能否是字符串strstr。 【例【例4.64.6】判别字符串的前缀能否为知字符串编程举】判别字符串的前缀能否为知字符串编程举例。例。/文件名:文件名:Telecode.javaTelecode.javapublic class Telcodepublic class Telcode public static void main(String args) public static void m
51、ain(String args) String code=02787654321; String code=02787654321; if (code.startsWith(027) if (code.startsWith(027) System.out.println( System.out.println(他所拨打的是武汉的。他所拨打的是武汉的。);); 运转结果如下运转结果如下: :他所拨打的是武汉的。他所拨打的是武汉的。 (7) (7) 字符串检索字符串检索 public int indexOf(int ch); public int indexOf(int ch); 从头向后查找,在
52、当前字符串中查找字符从头向后查找,在当前字符串中查找字符chch,并前往,并前往字符字符chch第一次出现的位置,假设没有查找到,那么前往第一次出现的位置,假设没有查找到,那么前往-1-1。indexOf( )indexOf( )因参数不同,还有以下三种方式:因参数不同,还有以下三种方式: public int indexOf(int ch,int startIndex); public int indexOf(int ch,int startIndex);在当前字符串中从参数在当前字符串中从参数startIndexstartIndex指定的位置开场向后查找字符指定的位置开场向后查找字符chc
53、h,前往字符,前往字符chch第一次出现的位置,假设没有查找到,那么前往第一次出现的位置,假设没有查找到,那么前往-1-1。 public int indexOf(String str); public int indexOf(String str); public int indexOf(String str,int startIndex); public int indexOf(String str,int startIndex);, ,是在字符串中查找字符子串是在字符串中查找字符子串strstr,分别与,在字符串,分别与,在字符串中查找单个字符类似。中查找单个字符类似。 (7) (7)
54、字符串检索字符串检索 例如:例如:String str=like network;String str=like network;str.indexOf(int)k);/str.indexOf(int)k);/值是值是2 2。str.indexOf(int)k,8);/str.indexOf(int)k,8);/值是值是1111。str.indexOf(net);/str.indexOf(net);/值是值是5 5。str.indexOf(net,9);/str.indexOf(net,9);/值是值是-1-1。 与与C言语不同言语不同(8) (8) 字符串大小写转换字符串大小写转换 publ
55、ic String toLowerCase( );public String toLowerCase( );前往全部小写的字符串。前往全部小写的字符串。public String toUpperCase( );public String toUpperCase( );前往全部大写的字符串。前往全部大写的字符串。例如:例如:String str1=Java,str2,str3;String str1=Java,str2,str3;str2=str1.toLowerCase( );/str2str2=str1.toLowerCase( );/str2是是javajava。str3=str1.toU
56、pperCase( );/str3str3=str1.toUpperCase( );/str3是是JAVAJAVA。 (9) (9) 获取字符串中的单个字符获取字符串中的单个字符 public char charAt(int index);public char charAt(int index); 前往字符串第前往字符串第indexindex位置上的字符。位置上的字符。 例如:例如: String answer=acdba,key=abcba; String answer=acdba,key=abcba; char ch; char ch;int iint ich=answer.charAt
57、(2);/chch=answer.charAt(2);/ch的值是字符的值是字符dd。if (answer.charAt(i)=key.charAt(i) /if (answer.charAt(i)=key.charAt(i) /* *answeranswer是学生是学生做题的答案,做题的答案,keykey是正确答案。假设是正确答案。假设ifif后的表达式为后的表达式为truetrue,那么第那么第i i题答对,相应地答对题的数目题答对,相应地答对题的数目rightright加加1 1。* */ /right+; / rightright+; / right是答对题的数目是答对题的数目 (10
58、) (10) 从字符串中删除前导和后随空格从字符串中删除前导和后随空格 常用常用public String trim( )public String trim( ) 例如:例如: String str1= She goes shopping ,str2; String str1= She goes shopping ,str2; str2=str1.trim( );/str2 str2=str1.trim( );/str2是是She goes shopingShe goes shoping。 实际练习:实际练习:6161页页 4.3 4.3 题题 请思索:如何编程实现?请思索:如何编程实现?
59、4.3 String s1=study hard,s2=we ,s3,s4,s5; 4.3 String s1=study hard,s2=we ,s3,s4,s5;int i;int i;i=s1.length( );i=s1.length( );s3=s2.concat(s1);s3=s2.concat(s1);s4=s1.substring(6);s4=s1.substring(6);s5=s2.replace(w, h);s5=s2.replace(w, h); 试问试问i,s3,s4,s5i,s3,s4,s5的内容分别是什么?的内容分别是什么? i=10i=10s3=we study
60、 hards3=we study hards4=hards4=hards5=he s5=he 编程实际:编程实际: 61 61页页 4.4 4.4 题题 4.4 4.4 编写一个程序,利用编写一个程序,利用toLowerCase( ),toUpperCase( )toLowerCase( ),toUpperCase( )实实现字符串的大小写转换。输出转换前和转换后的字符串。现字符串的大小写转换。输出转换前和转换后的字符串。 提示:参考提示:参考 54 54 页页 例例4.54.5编程实际:编程实际:4.4 4.4 题题 public class T4_4 public class T4_4 p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景区旅游项目自然资源价值评估及游客旅游满意度调查与景区环境维护研究
- 中考题圆切线题目及答案
- 阿德勒人格理论:照亮大学生心理健康教育之路
- 阿司匹林对胃癌细胞的增殖抑制及核因子κB表达调控机制研究
- 交行笔试题及参考答案
- autocad笔试考试题及答案
- 阴离子污染物在金属氧化物晶面的吸附转化机制:基于分子层面的解析
- 体育笔试题库及答案
- 竞聘笔试试题及答案
- bim笔试试题及答案
- DB52T 870-2025酱香型白酒酿酒用水
- 金华二中分班考数学试卷
- 临床经鼻高流量湿化氧疗护理
- 绒毛膜癌术后护理查房
- 眼镜行计量管理制度
- 泸溪一中2025年上学期高一第十次阶段检测数学试卷及参考答案
- TCEC-抽水蓄能电站润滑油在线监测技术导则编制说明
- 敬业合同协议书范本下载
- 2025年新媒体运营师考试试题及答案
- 2024年临沂市技师学院招聘教师真题
- 物业礼貌礼仪培训内容
评论
0/150
提交评论