版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组与字符串本章目标一维数组二维数组数组的应用字符串的应用23.1一维数组3.1.1一维数组的声明一维数组的声明格式有两种,分别是:
数据类型[]数组名;数据类型数组名[];例如:int[]scores;//定义存储分数的数组,类型为整型
doubleheight[];//定义存储身高的数组,类型为浮点型
String[]names;//定义存储姓名的数组,类型为字符串。3.1一维数组3.1.2一维数组的创建初始化方法:
使用关键字new为数组分配存储空间格式如下:
类型标识符数组名[]=new类型标识符[数组长度];
类型标识符[]数组名=new类型标识符[数组长度];例如: int[]scores=newint[5]; Stringnames[]=newString[3];3.1一维数组3.1.2一维数组的创建初始化方法:
通常也可以采用如下方式为数组元素赋初值并由初值的个数确定数组的大小: intarray[]={1,2,3,4,5}; Stringhobbys[]={"music","sports","game"};3.1一维数组3.1.3一维数组的访问访问格式:在对数组元素创建后,就可以通过数组的下标来访问数组元素,格式为:
数组名[下标]可以对赋值后的数组元素进行操作和处理,如获取并输出数组中元素的值:int[]scores={95,93,80,86,79}System.out.print("scores数组中第1个元素的值:"+scores[0]);注意:数组下标从0开始。3.1一维数组3.1.3一维数组的访问循环打印输出数组中的数字:
3.2二维数组3.2.1二维数组的声明二维数组的声明和一维数组基本相同,只是多一对[]。二维数组的声明格式有三种,分别是:
数据类型[][]数组名;
数据类型数组名[][];
数据类型[]数组名[];例如: int[][]array1; doublearray2[][]; char[]array3[];3.2二维数组3.2.2二维数组的创建分配空间
二维数组的创建格式为:
数据类型[][]数组名;
数组名=new数据类型[行的个数][列的个数];
或者:
数据类型[][]数组名=new数据类型[行的个数][列的个数];
例如:int[][]number=newint[2][3];//定义一个2行3列的二维数组numberchar[][]array=newchar[3][5]//定义一个3行5列的二维数组array3.2二维数组3.2.2二维数组的创建赋值二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,索引从0开始。格式如下:
数组名[行的索引][列的索引]=值;例如:
int[][]number=newint[2][3]; number[0][0]=11; number[0][1]=32; number[0][2]=15; ……3.2二维数组3.2.2二维数组的创建赋值也可以在声明数组的同时直接赋值。格式如下:
数值类型[][]数组名={{值1,值2…},{值11,值22…},{值21,值22…}};例如: int[][]number={{1,2,3},{4,5,6}};
3.2二维数组3.2.3二维数组的访问在循环输出时,需要用二重循环来输出二维数组中的每一个元素。例如:定义一个三行两列的数组,并循环打印输出数组中的每一个元素。3.3数组的应用【例3-4】获取数组的最大值和最小值。publicclassTest{ publicstaticvoidmain(String[]args){ int[]arr={12,45,28,62,39}; intmax=getMax(arr); System.out.println("最大值为:"+max); intmin=getMin(arr); System.out.println("最小值为:"+min); }3.3数组的应用【例3-4】获取数组的最大值和最小值。//获取数组的最大值
publicstaticintgetMax(inta[]){ intmax=a[0]; for(inti=0;i<a.length;i++){ if(a[i]>max){ max=a[i]; } } returnmax; }3.3数组的应用【例3-4】获取数组的最大值和最小值。//获取数组的最小值
publicstaticintgetMin(inta[]){ intmin=a[0]; for(inti=0;i<a.length;i++){ if(a[i]<min){ min=a[i]; } } returnmin; }}3.3数组的应用【例3-4】获取数组的最大值和最小值。程序运行结果如图所示。3.3数组的应用【例3-5】实现冒泡排序算法冒泡排序是一种经典的交换排序算法,通过交换数据元素的位置进行排序。算法思想:
从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1]>A[i]),则交换它们,其结果是将最(大)小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最(大)小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最(大)小的元素放到了序列的”最前面”。3.3数组的应用【例3-5】实现冒泡排序算法publicclassTest{ publicstaticvoidmain(String[]args){ int[]arr={6,4,8,2,9}; System.out.print("冒泡排序前:");
printArray(arr);//打印数组元素
bubbleSort(arr);//调用排序方法
System.out.print("冒泡排序后:");
printArray(arr);//打印数组元素
}3.3数组的应用【例3-5】实现冒泡排序算法//定义打印数组方法
publicstaticvoidprintArray(int[]arr){ //循环遍历数组的元素
for(inti=0;i<arr.length;i++){ System.out.print(arr[i]+"");//打印元素和空格
} System.out.print("\n"); }3.3数组的应用【例3-5】实现冒泡排序算法//定义对数组排序的方法
publicstaticvoidbubbleSort(int[]arr){ //定义外层循环
for(inti=0;i<arr.length-1;i++){ //定义内层循环
for(intj=0;j<arr.length-i-1;j++){//比较相邻元素 if(arr[j]<arr[j+1]){
3.3数组的应用【例3-5】实现冒泡排序算法//下面的三行代码用于交换两个元素
inttemp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } System.out.print("第"+(i+1)+"轮排序后:"); printArray(arr);//每轮比较结束打印数组元素
} }}3.3数组的应用程序运行结果如图所示。【例3-5】实现冒泡排序算法3.4字符串的应用3.4.1
String类构造字符串对象String类提供了如下一些常用的构造函数来构造字符串对象。(1)String()构造一个空的字符串对象。(2)String(charchars[]):以字符数组chars的内容构造一个字符串对象。(3)String(charchars[],intstartIndex,intnumChars)以字符数组chars中从startIndex位置开始的numChars个字符构造一个字符串对象。(4)String(byte[]bytes):以字节数组bytes的内容构造一个字符串对象。(5)String(byte[]bytes,intoffset,intlength):以字节数组bytes中从offset位置开始的length个字节构造一个字符串对象。3.4字符串的应用3.4.1
String类String类对象的常用方法String类也提供了众多的方法用于操作字符串,以下列出一些常用的方法。(1)publicintlength():返回字符串的字符个数。publiccharcharAt(intindex):返回字符串中index位置上的字符,其中index值的范围是0~length-1。(3)publicintindexOf(charch)返回字符ch在字符串中第一次出现的位置。(4)publiclastIndexOf(charch)返回字符ch在字符串中最后一次出现的位置。(5)publicintindexOf(Stringstr)返回子串str在字符串中第一次出现的位置。(6)publicintlastIndexOf(Stringstr)返回子串str在字符串中最后一次出现的位置。3.4字符串的应用3.4.1
String类String类对象的常用方法(7)publicStringsubstring(intbeginIndex):返回字符串中从beginIndex位置开始的子串。(8)publicStringsubstring(intbeginIndex,intendIndex):返回字符串中从beginIndex位置开始到endIndex位置(不包括该位置)结束的子串。(9)publicStringcontact(Stringstr):将当前字符串与给定字符串str连接起来。(10)publicStringreplace(charoldChar,charnewChar):把串中所有由oldChar指定的字符替换成由newChar指定的字符以生成新串。(11)publicStringtoLowerCase():把串中所有的字符变成小写且返回新串。(12)publicStringtoUpperCase():把串中所有的字符变成大写且返回新串。(13)publicStringtrim():去掉串中前导空格和拖尾空格且返回新串。3.4字符串的应用3.4.1
String类String类的使用
详见书62页例题3-6。3.4字符串的应用3.4.1
StringBuffer类创建StringBuffer类对象StringBuffer类常用的构造方法如下。(1)StringBuffer():用于创建一个空的StringBuffer类对象。(2)StringBuffer(intlength):以length指定的长度创建StringBuffer类对象。(3)StringBuffer(Stringstr):用指定的字符串初始化创建StringBuffer类对象。3.4字符串的应用3.4.1
StringBuffer类StringBuffer类对象的常用方法1)插入字符串方法insert()insert()方法是一个重载方法,用于在字符串缓冲区中指定的位置插入给定的字符串。它有如下形式。insert(intindex,类型参量名):可以在字符串缓冲区中index指定的位置处插入各种数据类型的数据(如int、double、boolean、char、float、long、String、Object等)。insert(intindex,char[]str,intoffset,intlen):可以在字符串缓冲区中index指定的位置处插入字符数组中从下标offset处开始的len个字符。3.4字符串的应用3.4.1
StringBuffer类StringBuffer类对象的常用方法2)删除字符串方法StringBuffer类提供了如下常用的删除字符串方法。(1)delete(intstart,intend):用于删除字符串缓冲区中从start位置开始到end-1位置结束的子串。(2)deleteCharAt(intindex):用于删除字符串缓冲区中index位置处的字符。3)添加字符串方法append()(1)append(数据类型参量名):可以向字符串缓冲区添加各种数据类型的数据(如int、double、boolean、char、float、long、String、Object等)。3.4字符串的应用3.4.1
StringBuffer类StringBuffer类对象的常用方法(2)append(char[]str,intoffset,intlen):将字符数组str中从offset指定的下标位置开始的len个字符添加到字符串缓冲区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年土地证抵押贷款协议3篇
- 漯河职业技术学院《化工分离工程》2023-2024学年第一学期期末试卷
- 2024年度施工现场消防通道及安全标志设置服务协议3篇
- 洛阳师范学院《电磁场与电磁波》2023-2024学年第一学期期末试卷
- 洛阳科技职业学院《数字设备与装置》2023-2024学年第一学期期末试卷
- 2024年展会赞助:商业赞助与合作协议3篇
- 2024年度云计算服务具体服务内容合同3篇
- 2024年度专业牛羊养殖场规模化购销合同书3篇
- 临时咖啡师招募合同
- 2024年班组工人劳动安全合同3篇
- 夫妻债务约定协议书
- 订购蓝莓合同范例
- 2024年宣传文化工作总结(3篇)
- 美团课件无水印
- 《金融学原理》期末考试复习题库(含答案)
- 2023年北京肿瘤医院(含社会人员)招聘考试真题
- 南京信息工程大学《高等代数》2023-2024学年第一学期期末试卷
- 口腔诊所耗材管理制度实施细则
- 医疗器械经营企业医疗器械销售记录制度
- 四年级英语上册 【月考卷】第一次月考卷(Unit 1-2) (含答案)(人教PEP)
- (完整版)自由泳教案
评论
0/150
提交评论