第4章数组000001

上传人:痛*** 文档编号:172646669 上传时间:2022-12-05 格式:PPT 页数:68 大小:267.02KB
收藏 版权申诉 举报 下载
第4章数组000001_第1页
第1页 / 共68页
第4章数组000001_第2页
第2页 / 共68页
第4章数组000001_第3页
第3页 / 共68页
资源描述:

《第4章数组000001》由会员分享,可在线阅读,更多相关《第4章数组000001(68页珍藏版)》请在装配图网上搜索。

1、第第4 4章章 数组数组 能力要求能力要求理解数组的概念理解数组的概念掌握一维数组的声明、创建、初始化和掌握一维数组的声明、创建、初始化和使用使用掌握二维数组的声明、创建、初始化和掌握二维数组的声明、创建、初始化和使用使用掌握字符串和数值相互转化的方法掌握字符串和数值相互转化的方法了解了解StringString类的常用方法类的常用方法了解了解StringBufferStringBuffer类的常用方法类的常用方法 4.1 一维数组一维数组4.1.1 4.1.1 一维数组的声明一维数组的声明 声明一维数组的格式有两种:声明一维数组的格式有两种:(1 1)数组元素类型)数组元素类型 数组名数组名

2、 ;(2 2)数组元素类型)数组元素类型 数组名;数组名;例如:声明例如:声明intint类型数组类型数组a a的语句如下:的语句如下:int int a;/a;/数组元素类型数组元素类型 数组名数组名 ;或者或者 intint a;/a;/数组元素类型数组元素类型 数组名;数组名;4.1.1 4.1.1 一维数组的声明一维数组的声明 声明字符串数组的语句如下声明字符串数组的语句如下:String b;String b;或者或者 String b;String b;又如 public static void main(String String argsargs )中:String Strin

3、g argsargs 或者或者 String String argsargs4.1.2 4.1.2 一维数组的创建一维数组的创建 数组是在运行时动态创建的。在以数组是在运行时动态创建的。在以new创建数组时,可以指创建数组时,可以指定数组的类型和数组元素的个数。例如定数组的类型和数组元素的个数。例如:int a=new int7;也可以将数组的声明和创建分开来执行:也可以将数组的声明和创建分开来执行:int a ;/声明数组声明数组a=new int7;/创建数组创建数组4.1.3 一维数组的初始化一维数组的初始化 数组的初始化可以通过两种方式来完成:数组的初始化可以通过两种方式来完成:(1

4、1)在定义数组的同时进行初始化(这种方式相当于已经为)在定义数组的同时进行初始化(这种方式相当于已经为数组分配了内存空间)。其语法形式如下:数组分配了内存空间)。其语法形式如下:数组元素类型数组元素类型 数组名数组名 =数组元素数组元素1 1的初值的初值,数组元素数组元素2 2的初值的初值,方括号表示可选项。方括号表示可选项。例如:例如:int int a=3,6,2,8;a=3,6,2,8;上述语句创建了一个包含四个元素的数组上述语句创建了一个包含四个元素的数组a a,四个元素分别是四个元素分别是3 3、6 6、2 2和和8 8。4.1.3 一维数组的初始化一维数组的初始化(2 2)先用)先

5、用newnew来配置数组的长度,然后再用赋值语句为每个来配置数组的长度,然后再用赋值语句为每个元素设置初值。元素设置初值。int int a =newa =new int int4;4;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表示数组表示数组a a的的

6、长度,即数组长度,即数组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 public class ArrayExampleArrayExample publi

7、c static void main(String public static void main(String argsargs)int int f=newf=new int int4;4;intint j;j;int int a =newa =new int int3;3;a0=2;a0=2;a1=3+5;a1=3+5;a2=4 a2=4*8;8;例例4.1 4.1 一维数组的初始化与输出。一维数组的初始化与输出。/文件名:文件名:ArrayExample.javaArrayExample.java System.out.System.out.printlnprintln(a1=+a1);

8、(a1=+a1);System.out.System.out.printlnprintln(数组数组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=a1=8 8数组数组f f:0 1 2 30 1 2 3 停顿停顿5分钟,让学生看书、例分钟,让学生看书、例4.1。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 /文件名:文件名:

9、Sort.javaSort.javapublic class Sortpublic class Sort public static void main(String public static void main(String argsargs)int int i,j,k,temp;i,j,k,temp;intint a=31,23,47,19,52,96,85,74;a=31,23,47,19,52,96,85,74;请思考:请思考:1.怎样声明和创建数组怎样声明和创建数组a,使得数组使得数组a的长度是的长度是8?2.如何从键盘输入数据来初始化数组?如何从键盘输入数据来初始化数组?例例4.

10、24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 /文件文件名:名:Sort.javaSort.javaint int a=31,23,47,19,52,96,85,74;a=31,23,47,19,52,96,85,74;for(i=0;ifor(i=0;ia.length-1a.length-1;i+);i+)for(j=i+1;j for(j=i+1;ja.lengtha.length;j+);j+)if(aiaj)if(aiaj)temp=ai;temp=ai;ai=aj;ai=aj;aj=temp;aj=temp;第一趟比较:第一趟比较:i=0,j=1,2,i

11、=0,j=1,2,7,7a0a0与与a1a1比较比较a0a0与与a2a2比较比较a0a0与与a7a7比较比较第一趟比较后,第一趟比较后,a0a0中存放中存放的是的是8 8个数中最大的数。个数中最大的数。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 /文件文件名:名:Sort.javaSort.javaint int a=31,23,47,19,52,96,85,74;a=31,23,47,19,52,96,85,74;for(i=0;i for(i=0;i a.length-1a.length-1;i+);i+)for(j=i+1;j for(j=i+1;j

12、 a.lengtha.length;j+);j+)if(aiaj)if(aiaj)temp=ai;temp=ai;ai=aj;ai=aj;aj=temp;aj=temp;第二趟比较:第二趟比较:i=1,j=2,i=1,j=2,7,7a1a1与与a2a2比较比较a1a1与与a3a3比较比较a1a1与与a7a7比较比较第二趟比较后,第二趟比较后,a1a1中存放中存放的是剩下的的是剩下的7 7个数中最大的个数中最大的数。数。例例4.24.2把数组元素按照从大到小的顺序排序把数组元素按照从大到小的顺序排序 /文件名:文件名:Sort.javaSort.javaSystem.out.System.out

13、.printlnprintln(排序后的数组:排序后的数组:););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 85 74 52 47 31 23 19例例4.2请思考:请思考:1.怎样声明和创建数组怎样声明和创建数组a,使得数组使得数组a的长度是的长度是8?2.如何从键盘输入数据来初始化数组?如何从键盘输入数据来初始化数组?import java.uti

14、l.Scanner;/import java.util.Scanner;/加加public class Sortpublic class Sort public static void main(String public static void main(String args args)int int i,j,k,temp;i,j,k,temp;/intint a=31,23,47,19,52,96,85,74;/a=31,23,47,19,52,96,85,74;/去掉此句去掉此句/以下是加的内容:以下是加的内容:/声明和创建数组声明和创建数组a a,使得数组使得数组a a的长度是的长度

15、是8 8。注意:与。注意:与C C语言不同。语言不同。int a=new int8;/从键盘输入数据来初始化数组从键盘输入数据来初始化数组 System.out.println(请输入数组请输入数组a中的中的8个元素(整数),整个元素(整数),整数之间可以用空格或回车分隔:数之间可以用空格或回车分隔:);Scanner s=new Scanner(System.in);for(i=0;ia.length;i+)ai=s.nextInt();/加的内容到此为止加的内容到此为止 for(i=0;ia.length-1;i+)for(i=0;ia.length-1;i+)/省略省略编程实践编程实践:

16、6161页页 习题四习题四 4.1 4.1题题 下面是一个数组的定义:下面是一个数组的定义:int int a=72,49,85,16,94,30,51,22a=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

17、_1 public static void main(String public static void main(String argsargs)intint i,j,k,temp;i,j,k,temp;int int a=a=72,49,85,16,94,30,51,2272,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;jajaiaj)temp=ai;temp=ai;ai

18、=aj;ai=aj;aj=temp;aj=temp;编程实践编程实践:6161页页 习题四习题四 4.1 4.1题题 System.out.System.out.printlnprintln(排序后的数组:排序后的数组:););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 二维数组的声明二维数组的声明二维数组声明的格式为:二维数

19、组声明的格式为:数组元素类型数组元素类型 数组名数组名 ;或者:或者:数组元素类型数组元素类型 数组名;数组名;例如,声明一个单精度型二维数组:例如,声明一个单精度型二维数组: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 int a ;/a ;/声明二维数组声明二维数组 a=new a=new int int23;/23;/创建

20、二维数组创建二维数组 4.2 4.2 二维数组二维数组4.2.3 4.2.3 二维数组的初始化二维数组的初始化二维数组可以在声明中用初始化值进行初始化。二维数组可以在声明中用初始化值进行初始化。例如,初始化一个例如,初始化一个2 2行行3 3列的二维数组:列的二维数组:int int a =3,4,5,6,7,8;a =3,4,5,6,7,8;4.2.4 4.2.4 二维数组的引用二维数组的引用格式如下:格式如下:数组名数组名 数组下标数组下标11数组下标数组下标2 2 例例4.4 4.4 求二维数组中所有数的最大值。求二维数组中所有数的最大值。/文件名:文件名:Max2.javaMax2.j

21、avapublic class Max2public class Max2 public static void main(String public static void main(String argsargs)intint max,i,j;max,i,j;intint a=2,84,57,16,89,48;a=2,84,57,16,89,48;/2 84/2 84/57 16/57 16/89 48/89 48例例4.4 4.4 求二维数组中所有数的最大值。求二维数组中所有数的最大值。max=a00;max=a00;for(i=0;i3;i+)for(i=0;i3;i+)for(j=0

22、;j2;j+)for(j=0;jmax)if(aijmax)max=aij;max=aij;System.out.System.out.printlnprintln(max=+max);(max=+max);运行结果如下运行结果如下:max=89max=89编程实践编程实践:6161页页 习题四习题四 4.2 4.2题题定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。参考:参考:51 51 页页 例例4.44.4习题四习题四 4.2 4.2题题定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。(红字为与例红字为与例4.44.4不同的地方不同的地方)

23、public class t4_2public class t4_2 public static void main(String public static void main(String argsargs)int int s=0;s=0;intint max,i,j;max,i,j;intint a=2,84,57,16,89,48;a=2,84,57,16,89,48;/max=a00;/max=a00;习题四习题四 4.2 4.2题题 定义一个二维数组,计算数组元素之和。定义一个二维数组,计算数组元素之和。for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j2;

24、j+)for(j=0;j=2)我们从我们从Fibonacci数列的计算公式可以看出数列的计算公式可以看出Fibonacci数列一点数列一点也不复杂。也不复杂。例如:例如:F2=F1+F0 F3=F2+F1。编程实现:编程实现:数组数组fnf0=1,f1=1fi=fi-1+fi-2 用循环实现用循环实现 编程实践:编程实践:计算计算Fibonacci数列第数列第8项的值,项的值,并输出前并输出前8项的值。项的值。public class Fibonacci public static void main(String args)int n=8;int i;int f=new intn;f0=1;

25、f1=1;for(i=2;in;i+)fi=fi-1+fi-2;for(i=0;in;i+)System.out.println(fi);4.3 4.3 String String 类类4.3.1 4.3.1 创建字符串常量创建字符串常量 (1)(1)public Stringpublic String(String String strstr)利用一个已存在的字符串常量创建一个新的利用一个已存在的字符串常量创建一个新的StringString对象,该对象,该对象的内容为已知的字符串常量。对象的内容为已知的字符串常量。创建创建StringString对象分为对象的声明和创建两步。这两步可以分对

26、象分为对象的声明和创建两步。这两步可以分成两个独立的语句。例如:成两个独立的语句。例如:String str1;String str1;str1=new String(Java);str1=new String(Java);也可以在一个语句中完成,例如:也可以在一个语句中完成,例如:String str1=new String(Java);String str1=new String(Java);也可写成:也可写成:String str1=Java;String str1=Java;4.3.1 4.3.1 创建字符串常量创建字符串常量 (2 2)public String(char a)pub

27、lic 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是是 goodgood4.3.1 4.3.1 创建字符串常量创建字符串常量 (3 3)public String(char a,public String(char a,intint startIndexstartIndex,intint endIndexendIndex)用字符数组的一部

28、分创建一个字符串对象。参数用字符数组的一部分创建一个字符串对象。参数startIndexstartIndex指指明提取明提取a a中字符的开始位置,中字符的开始位置,endIndexendIndex指明提取指明提取a a中字符的结束中字符的结束位置(位置(不包括不包括endIndexendIndex所指结束位置所指结束位置)。例如:)。例如: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,String str3=new String(a,1,5 5);/str3);/str3是是 workwork

29、 4.3.2 4.3.2 字符串转化为相应类型数值字符串转化为相应类型数值 (经常用到。用到时,可以查阅本节内容。经常用到。用到时,可以查阅本节内容。注意大小写注意大小写 )(1)(1)字符串转化为整型(字符串转化为整型(intint)数值数值格式:格式:I Integer.nteger.parseparseI Intnt(String(String strstr)例如:例如:Integer.Integer.parseIntparseInt(628);(628);把字符串把字符串“628”“628”转化为整转化为整型(型(intint)数值数值又如把字符串又如把字符串str1str1转为整型(

30、转为整型(intint),),然后赋给一个整型变量:然后赋给一个整型变量:String str1=210;String str1=210;intint a,b;a,b;a=Integer.a=Integer.parseIntparseInt(str1);(str1);红字为大写字符红字为大写字符4.3.2 4.3.2 字符串转化为相应类型数值字符串转化为相应类型数值 (经常用到。用到时,可以查阅本节内容。经常用到。用到时,可以查阅本节内容。注意大小写注意大小写 )(2)(2)字符串转化为字符串转化为LongLong型数值型数值格式:格式:L Long.ong.parseparseL Longo

31、ng(String(String strstr)例如:把字符串例如:把字符串“54321”“54321”转化为转化为LongLong型数值型数值Long.Long.parseLongparseLong(54321);(54321);(3)(3)字符串转化为浮点型(字符串转化为浮点型(floatfloat)数值数值格式:格式:F Float.loat.parseparseF Floatloat(String (String strstr)例如:把字符串例如:把字符串“3.14”“3.14”转化为转化为floatfloat型数值型数值Float.Float.parseFloatparseFloat

32、(3.14(3.14)(4)(4)字符串转化为双精度型(字符串转化为双精度型(doubledouble)数值数值格式:格式:DoubleDouble.parseparseDoubleDouble(String (String strstr)例如:把字符串例如:把字符串“198.72”“198.72”转化为双精度型(转化为双精度型(doubledouble)数值数值 Double.Double.parseDouble parseDouble(198.72)(198.72)4.3.3 4.3.3 数值转化为字符串数值转化为字符串 (经常用到经常用到 。用到时,可以查阅本节内容。用到时,可以查阅本节

33、内容。注意大小写注意大小写 )例如:把数值例如:把数值198.72198.72转化为字符串转化为字符串“198.72”“198.72”S String.tring.valuevalueO Of f(198.72);(198.72);又如:又如:intint a=572;a=572;String s;String s;s=String.s=String.valueOfvalueOf(a);(a);4.3.4 String4.3.4 String类中的方法类中的方法(用到时,可以查阅本节内容。用到时,可以查阅本节内容。)(1)(1)求字符串的长度求字符串的长度public public intin

34、t length()length();例如:例如:String s1=book;String s1=book;i=s1.length();/ii=s1.length();/i的值是的值是4 44.3.4 String4.3.4 String类中的方法类中的方法(用到时,可以查阅本节内容。用到时,可以查阅本节内容。)(2)(2)求字符串的子字符串求字符串的子字符串public String public String substringsubstring(intint begin);begin);抽取从参数抽取从参数beginbegin所指定的字符位置开始(包括此位置)直到该所指定的字符位置开始

35、(包括此位置)直到该字符串结束处的所有字符。字符串结束处的所有字符。public String public String substringsubstring(intint begin,begin,intint end);end);抽取从参数抽取从参数beginbegin所指定的字符位置开始(包括此位置)到参数所指定的字符位置开始(包括此位置)到参数endend所指定位置所指定位置(不包括此位置不包括此位置)为止的子串。为止的子串。注意:字符串的位置是从注意:字符串的位置是从0 0开始计数的。开始计数的。4.3.4 String4.3.4 String类中的方法类中的方法(用到时,可以查阅本

36、节内容。用到时,可以查阅本节内容。)例如:例如:String s1=He plays football,s2,s3;String s1=He plays football,s2,s3;s2=s1.s2=s1.substringsubstring(3);/s2(3);/s2是是 plays football);plays football);s3=s1.s3=s1.substringsubstring(3,(3,7 7);/s3);/s3是是 play;play;4.3.4 String4.3.4 String类中的方法类中的方法(用到时,可以查阅本节内容。用到时,可以查阅本节内容。)(3)(3

37、)字符串的连接字符串的连接public String public String concatconcat(String(String strstr););将字符串将字符串strstr连接到当前字符串的后面,得到一个新字符串,并连接到当前字符串的后面,得到一个新字符串,并返回这个新字符串,但当前字符串并没有改变。返回这个新字符串,但当前字符串并没有改变。实际上,对于实际上,对于StringString类中的方法,所有改变字符串的结果都是类中的方法,所有改变字符串的结果都是生成新的字符串,而没有改变原来的字符串。生成新的字符串,而没有改变原来的字符串。【例【例4.54.5】字符串连接编程举例。字

38、符串连接编程举例。/文件名:文件名:ConcatStrConcatStr.java.javapublic class public class ConcatStrConcatStr public static void main(String public static void main(String argsargs)String s1=Good ,s2=morning,s3;String s1=Good ,s2=morning,s3;s3=s1.s3=s1.concatconcat(s2);(s2);System.out.System.out.printlnprintln(连接前,连接前

39、,s1=s1=+s1+s1+s2=s2=+s2);+s2);System.out.System.out.printlnprintln(s1.s1.concatconcat(s2)=(s2)=+s1.+s1.concatconcat(s2);(s2);/连接前,连接前,s1=s1=Good Good s2=s2=morningmorning/s1.s1.concatconcat(s2)=(s2)=Good morningGood morning 【例【例4.54.5】字符串连接编程举例。字符串连接编程举例。System.out.System.out.printlnprintln(连接后,连接后,

40、s1=s1=+s1+s1+s2=s2=+s2);+s2);System.out.System.out.printlnprintln(s3=s1.s3=s1.concatconcat(s2)=(s2)=+s3);+s3);/连接后,连接后,s1=s1=Good Good s2=s2=morningmorning /s3=s1.s3=s1.concatconcat(s2)=(s2)=Good morningGood morning (4)(4)比较两个字符串比较两个字符串 public public booleanboolean equals(String equals(String strstr

41、););(常用)常用)将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,若两个字符串的比较,若两个字符串的内容内容相同,相同,则返回则返回truetrue,否则返回否则返回falsefalse。请思考:比较两个字符串的请思考:比较两个字符串的内容内容是否相等,是否相等,(1 1)用)用 =判断吗?(判断吗?(2 2)用)用 equals()equals()判断?判断?说明:说明:“=”:”:用于用于String,”String,”=”测试的是测试的是StringString在内存中的引在内存中的引用用地址是否相等地址是否相等。equals()equals():测试两个字符串的测

42、试两个字符串的内容是否相同内容是否相同。答:答:比较两个字符串的内容是否相等比较两个字符串的内容是否相等(2 2)用)用 equals()equals()判断判断 (4)(4)比较两个字符串比较两个字符串 public public booleanboolean equals(String equals(String strstr););(常用)常用)将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,若两个字符串的比较,若两个字符串的内容内容相同,相同,则返回则返回truetrue,否则返回否则返回falsefalse。说明:说明:“=”:”:用于用于String,”Strin

43、g,”=”测试的是测试的是StringString在内存中的在内存中的引用引用地址是否相等地址是否相等。equals()equals():测试两个字符串的测试两个字符串的内容是否相同内容是否相同。举例:举例:Equals2.javaEquals2.java (4)(4)比较两个字符串比较两个字符串 public public booleanboolean equals(String equals(String strstr););(常用)常用)将当前字符串与参数字符串将当前字符串与参数字符串strstr比较,若两个字符串的内容相同,比较,若两个字符串的内容相同,则返回则返回truetrue,否

44、则返回否则返回falsefalse。public public booleanboolean equalsIgnoreCaseequalsIgnoreCase(String(String strstr););与与equals()equals()方法类似,但忽略大小写。方法类似,但忽略大小写。public public intint compareTocompareTo(String(String strstr)按字典序将当前字符串按字典序将当前字符串s s与参数字符串与参数字符串strstr比较大小。如果比较大小。如果s s按字按字母序与母序与strstr完全相同,该方法返回完全相同,该方法返

45、回0 0;如果按字母序;如果按字母序s s大于大于strstr,则该方法返回一个大于则该方法返回一个大于0 0的整数;如果按字母序的整数;如果按字母序s s小于小于strstr,则该则该方法返回一个小于方法返回一个小于0 0的整数。的整数。(4)(4)比较两个字符串比较两个字符串 public public intint compareToIgnoreCasecompareToIgnoreCase(String(String strstr););与与compareTocompareTo()()方法类似,但忽略大小写。方法类似,但忽略大小写。例如:例如:String s1=basic,s2=ja

46、va,s3=Basic;String s1=basic,s2=java,s3=Basic;s1.equals(s2)s1.equals(s2)的值是的值是falsefalse。pareTocompareTo(s2)(s2)的值小于的值小于0 0。pareToIgnoreCasecompareToIgnoreCase(s3)(s3)的值是的值是0 0。(5)(5)替换替换字符串中的字符字符串中的字符 public String public String replacereplace(char old,char new);(char old,char new);用参数用参数new new 指定的

47、字符替换由参数指定的字符替换由参数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 public booleanboolean startsWithstartsWith(String(String strstr););判断一个字符串前缀是否是字符串判断一个字符串前缀是否是字

48、符串strstr。public public booleanboolean endsWithendsWith(String(String strstr););判断一个字符串后缀是否是字符串判断一个字符串后缀是否是字符串strstr。【例例4.64.6】判断字符串的前缀是否为已知字符串编程】判断字符串的前缀是否为已知字符串编程举例。举例。/文件名:文件名:TelecodeTelecode.java.javapublic class public class TelcodeTelcode public static void main(String public static void main(

49、String argsargs)String code=02787654321;String code=02787654321;if(code.if(code.startsWithstartsWith(027)(027)System.out.System.out.printlnprintln(你所拨打的电话是武汉的。你所拨打的电话是武汉的。););运行结果如下运行结果如下:你所拨打的电话是武汉的。你所拨打的电话是武汉的。(7)(7)字符串检索字符串检索 public public intint indexOfindexOf(intint chch););从头向后查找,在当前字符串中查找从头向后

50、查找,在当前字符串中查找字符字符chch,并返回并返回字符字符chch第一次出现的位置,如果没有查找到,则返回第一次出现的位置,如果没有查找到,则返回-1-1。indexOfindexOf()()因参数不同,还有以下三种形式:因参数不同,还有以下三种形式:public public intint indexOfindexOf(intint chch,intint startIndexstartIndex););在当前字符串中从参数在当前字符串中从参数startIndexstartIndex指定的位置开始向后查找字符指定的位置开始向后查找字符chch,返回字符返回字符chch第一次出现的位置,如

51、果没有查找到,则返回第一次出现的位置,如果没有查找到,则返回-1-1。public public intint indexOfindexOf(StringString strstr););public public intint indexOfindexOf(String(String strstr,intint startIndexstartIndex););,是在字符串中查找字符子串是在字符串中查找字符子串strstr,分别与,在字符串分别与,在字符串中查找单个字符相似。中查找单个字符相似。(7)(7)字符串检索字符串检索 例如:例如:String String strstr=like n

52、etwork;=like network;strstr.indexOfindexOf(intint)k)k);/);/值是值是2 2。strstr.indexOfindexOf(intint)k,8);/)k,8);/值是值是1111。strstr.indexOfindexOf(net);/(net);/值是值是5 5。strstr.indexOfindexOf(net,9);/(net,9);/值是值是-1-1。与与C语言不同语言不同(8)(8)字符串大小写转换字符串大小写转换 public String public String totoL LowerowerC Casease();()

53、;返回全部小写的字符串。返回全部小写的字符串。public String public String totoU UpperpperC Casease();();返回全部大写的字符串。返回全部大写的字符串。例如:例如:String str1=Java,str2,str3;String str1=Java,str2,str3;str2=str1.str2=str1.toLowerCasetoLowerCase();/str2();/str2是是 javajava。str3=str1.str3=str1.toUpperCasetoUpperCase();/str3();/str3是是 JAVAJA

54、VA。(9)(9)获取字符串中的单个字符获取字符串中的单个字符 public char public char charAtcharAt(intint index);index);返回字符串第返回字符串第indexindex位置上的字符。位置上的字符。例如:例如:String answer=String answer=acdbaacdba,key=,key=abcbaabcba;char char chch;intint i ichch=answer.=answer.charAtcharAt(2);/(2);/chch的值是字符的值是字符 dd。if(answer.if(answer.char

55、AtcharAt(i)=key.(i)=key.charAtcharAt(i)/(i)/*answeranswer是学生是学生做题的答案,做题的答案,keykey是正确答案。如果是正确答案。如果ifif后的表达式为后的表达式为truetrue,则第则第i i题答对,相应地答对题的数目题答对,相应地答对题的数目rightright加加1 1。*/right+;/rightright+;/right是答对题的数目是答对题的数目 (10)(10)从字符串中删除前导和后随空格从字符串中删除前导和后随空格 (常用)(常用)public String public String trim()trim()例

56、如:例如:String str1=She goes shopping ,str2;String str1=She goes shopping ,str2;str2=str1.trim();/str2 str2=str1.trim();/str2是是 She goes She goes shopingshoping。实践练习:实践练习:6161页页 4.3 4.3 题题 (请思考:如何编程实现?)(请思考:如何编程实现?)4.3 String s1=study hard,s2=we,s3,s4,s5;4.3 String s1=study hard,s2=we,s3,s4,s5;intint i

57、;i;i=s1.length();i=s1.length();s3=s2.s3=s2.concatconcat(s1);(s1);s4=s1.s4=s1.substringsubstring(6);(6);s5=s2.replace(w,h);s5=s2.replace(w,h);试问试问i,s3,s4,s5i,s3,s4,s5的内容分别是什么?的内容分别是什么?i=10i=10s3=we study hards3=we study hards4=hards4=hards5=he s5=he 编程实践:编程实践:61 61页页 4.4 4.4 题题 4.4 4.4 编写一个程序,利用编写一个程

58、序,利用toLowerCasetoLowerCase(),(),toUpperCasetoUpperCase()()实实现字符串的大小写转换。输出转换前和转换后的字符串。现字符串的大小写转换。输出转换前和转换后的字符串。提示:参考提示:参考 54 54 页页 例例4.54.5编程实践:编程实践:4.4 4.4 题题 public class public class T4_4T4_4 public static void main(String public static void main(String argsargs)String s1=Good,s2=morning,s3 String

59、 s1=Good,s2=morning,s3,s4,s4;s3=s1.s3=s1.toLowerCasetoLowerCase();();s4=s2.s4=s2.toUpperCasetoUpperCase();();System.out.System.out.printlnprintln(没转换前没转换前,s1=+s1s1=+s1););System.out.System.out.printlnprintln(转换后转换后 ,s1.s1.toLowerCasetoLowerCase=+s3=+s3););System.out.System.out.printlnprintln(没转换前没转换

60、前,s2=+s2s2=+s2););System.out.System.out.printlnprintln(转换后转换后 ,s2.s2.toUpperCasetoUpperCase=+s4=+s4););编程实践:编程实践:6161页页 4.5 4.5 题题 4.5 4.5 利用利用compareTocompareTo()()比较比较 5 5 个字符串的大小,并按照从小个字符串的大小,并按照从小到大的顺序输出。到大的顺序输出。提示:参考提示:参考 47-48 47-48 页页 例例4.24.2编程实践:编程实践:4.5 4.5 题题 public class T4_5public class

61、 T4_5 public static void main(String public static void main(String argsargs)intint i,j,k;i,j,k;String temp;String temp;String String a=a=Basic,Pascal,C,Java,FoxProBasic,Pascal,C,Java,FoxPro;编程实践:编程实践:4.5 4.5 题题 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;j00)temp=

62、ai;temp=ai;ai=aj;ai=aj;aj=temp;aj=temp;/注意:字符串的比较注意:字符串的比较编程实践:编程实践:4.5 4.5 题题 System.out.System.out.printlnprintln(排序后的数组:排序后的数组:););for(k=0;ka.length;k+)for(k=0;ka.length;k+)System.out.print(ak+);System.out.print(ak+);System.out.System.out.printlnprintln();();4.44.4 StringBufferStringBuffer类类(了解了解

63、)String String对象表示的是不可更改的字符串对象,如果需要修对象表示的是不可更改的字符串对象,如果需要修改改StringString对象所表示的内容,必须重新创建一个对象。对象所表示的内容,必须重新创建一个对象。当修改操作频繁,或字符串的值很大时,会额外分配大量当修改操作频繁,或字符串的值很大时,会额外分配大量内存。内存。因此,因此,JavaJava语言引入了一个语言引入了一个StringBufferStringBuffer类,用来表示内类,用来表示内容可以扩充和修改字符串对象。容可以扩充和修改字符串对象。StringBufferStringBuffer 用于一个可变的字符序列,与

64、用于一个可变的字符序列,与StringString很类似。很类似。但是,通过调用一些方法可以改变字符序列的长度和内容。但是,通过调用一些方法可以改变字符序列的长度和内容。StringBufferStringBuffer类提供的方法主要用来实现类提供的方法主要用来实现对字符串的修改对字符串的修改,包,包括字符替换、插入字符、在末尾添加子字符串等。括字符替换、插入字符、在末尾添加子字符串等。StringBufferStringBuffer类使用了缓冲区对字符串进行修改操作类使用了缓冲区对字符串进行修改操作。4.44.4 StringBufferStringBuffer类类(了解了解)StringB

65、ufferStringBuffer类使用了缓冲区对字符串进行修改操作,为了类使用了缓冲区对字符串进行修改操作,为了避免总是重新为一个字符串分配空间,在生成一个避免总是重新为一个字符串分配空间,在生成一个StringBufferStringBuffer类的对象时,类的对象时,JavaJava多多分配分配1616个字符长度的缓冲区个字符长度的缓冲区。4.44.4 StringBufferStringBuffer类类(了解了解)StringBuffer类的构造方法:类的构造方法:public StringBuffer();/构造一个初值为构造一个初值为“”的的StringBuffer 例:例:Str

66、ingBuffer s=new StringBuffer();public StringBuffer(String str);/构造一个初值为构造一个初值为str的的StringBufferpublic StringBuffer(20);/构造长度为构造长度为20的的StringBuffer常用方法:常用方法:public public intint length()length():返回该返回该StringBufferStringBuffer的长度(字符的长度(字符数)。数)。public public intint capacity()capacity():返回返回StringBufferStringBuffer的当前容量。的当前容量。public synchronized public synchronized StringBufferStringBuffer appendappend(type variable):(type variable):把把variablevariable转换成字符串,然后与当前字符串连接。转换成字符串,然后与当前字符串连接。public synchr

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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