版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组与字符串学习目标掌握数组的创建与使用方法。掌握字符串类及其常用的操作方法。案例引入——排序案例说明
在实际生活中,我们会经常按照某一条件对事物进行排序,例如:学生按身高高低排队,学生成绩的排名等。那么在编程中,我们利用程序怎样实现排序呢?在程序中,可以首先把这些要排序的数据存放到一个数组中,再利用循环来遍历数组中的每个元素来判断其大小。本案例编辑、编译运行后将把一组数据按从小到大的顺序输出显示出来,通过这个程序,我们来了解Java中数组的应用以及字符串的相关知识。案例分析
要完成本案例程序,首先要使用文本编辑器编辑源程序,定义一个数组并初始化数组变量,然后循环判断数组中的每个元素值,根据判断结果将两个数字的位置进行对调,最终实现这一数组中的元素按照从小到大的顺序重新排列,并输出排序后的数组内容。最后完成程序的编译和运行。6.2知识准备6.2.1一维数组数组的声明方式和一般变量的声明方式类似,需要声明数组变量名和其数据类型,并用[]与一般的变量相区别。Java中声明一维数组的格式为:typearrayName[];或type[]arrayName;例:intintArray[];一维数组的声明
要创建数组,为其分配内存空间,与创建Java的其他对象一样,应使用new运算符,其格式如下:arrayName=newtype[arraySize];通常,可以将数组的声明和创建合并为一条语句,即在数组声明的同时用new运算符为数组分配内存空间。其格式如下:typearrayName=newtype[arraySize];
例:doubledArray=newdouble[8];一维数组的内存分配6.2.1一维数组
(1)在声明数组的同时进行初始化。例如:inta[]={1,2,3,4,5};
(2)在声明并创建数组后,为每个元素分别赋值来对数组进行初始化。例如:inta[]=newint[5];a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;一维数组的初始化
当定义了一个数组,并为它分配了内存空间后,就可以引用数组中的每一个元素了。数组元素的引用方式如下:arrayName[index]此外,由于数组在Java语言中是作为一个对象来处理的,故每个数组都有一个length属性,其值为数组的长度,可以通过“数组名.length”的形式引用。例如,a.length指明数组a的长度。
一维数组的引用【例】编写程序测试数组,程序输出结果如图所示。源程序代码如下:6.2.2二维数组
在Java语言中,二维数组可以看成是一个一维数组的数组,其中一维数组的每一个元素又是一个一维数组。而更高维的数组也可以由此类推。二维数组的定义与一维数组的定义非常类似,只是在一维数组的基础上再加上一对“[]”,其定义格式如下:typearrayName[][];或type[][]arrayName定义方式typearrayName[][]=newtype[arraySize1][arraySize2];内存分配和初始化
arrayName[index1][index2]
其中,index1和index2分别是数组元素的下标,每一维的下标都从0开始,最大值等于每一维的长度减1。引用6.2.3ArrayList类ArrayList类的使用方法ArryList实现了可变大小的数组,即是动态数组。ArrayListList=newArrayList();for(inti=0;i<10;i++)//给数组增加10个int元素
List.Add(i);……//程序做一些处理
List.RemoveAt(5);//将第6个元素移除
for(inti=0;i<3;i++)//再增加3个元素
List.Add(i+20);Int32[]values=(Int32[])List.ToArray(typeof(Int32));ArrayList类的几个重要方法和属性默认的构造器,将会以默认(16)的大小来初始化内部的数组。用一个ICollection对象来构造,并将该集合的元素添加到ArrayList。用指定的大小来初始化内部的数组。publicArrayList();publicArrayList(ICollection);publicArrayList(int);构造器ArrayList类的几个重要方法和属性Count属性是目前ArrayList类包含的元素的数量,这个属性是只读的。
Capacity属性是目前ArrayList类能够包含的最大数量,可以手动设置这个属性,但是当设置为小于Count值时会引发一个异常。Count属性和Capacity属性
ArrayList类的几个重要方法和属性(1)Add方法用于添加一个元素到当前列表的末尾。(2)AddRange方法用于添加一批元素到当前列表的末尾。(3)Remove方法用于删除一个元素,通过元素本身的引用来删除。(4)RemoveAt方法用于删除一个元素,通过索引值来删除。(5)RemoveRange方法用于删除一批元素,通过指定开始的索引和删除的数量来删除。(6)Insert方法用于添加一个元素到指定位置,列表后面的元素依次往后移动。(7)InsertRange方法用于从指定位置开始添加一批元素,列表后面的元素依次往后面移动。ArrayList类的几个重要方法和属性方法一:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=(Int32[])List.ToArray(typeof(Int32));ArrayList类与数组转换
方法二:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=newInt32[List.Count];List.CopyTo(values);6.2.4String类String是比较特殊的数据类型,它不属于基本数据类型,但是可以和使用基本数据类型一样直接赋值,不使用new运算符进行实例化。也可以像其他类型一样使用new运算符进行实例化。下面的代码都是合法的:Strings1=“abc”;Strings2=newString(“abc”);String对象的初始化6.2.4String类(1)publicintlength()方法
该方法的作用是返回字符串的长度,也就是返回字符串中字符的个数。中文字符也是一个字符。(2)publiccharAt(intindex)方法
该方法的作用是按照索引值index(index取值范围从0到length()-1),获得字符串中的指定字符。(3)publicintcompareTo(StringanotherString)方法
该方法的作用是比较两个字符串的大小,比较的原理是依次比较每个字符的字符编码。首先比较两个字符串的第一个字符,如果第一个字符串的字符编码大于第二个的字符串的字符编码,则返回大于0的值,如果小于则返回小于0的值,如果相等则比较后续的字符,如果两个字符串中的字符编码完全相同则返回0。String类的常用方法6.2.4String类
(5)publicbooleanstartsWith(Stringprefix)方法和publicbooleanendsWith(Stringsuffix)方法startsWith方法:该方法的作用是判断字符串是否以某个字符串作为开始,如果以对应的字符串开始,则返回true。endsWith方法:该方法的作用是判断字符串是否以某个字符串结尾,如果以对应的字符串结尾,则返回true。
(6)publicbooleanequals(Objecto)方法
该方法的作用是判断两个字符串对象的内容是否相同。如果相同则返回true,否则返回false。
(7)publicintindexOf()方法
该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1。String类的常用方法6.2.4String类
(8)publicStringreplace(charc1,charc2)方法和publicStringreplaceAll(Strings1,Strings2)方法replace方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。
(9)publicStringsubstring(intbeginIndex)方法和publicStringsubstring(intbeginIndex,intendIndex)方法substring方法的作用是取字符串中的“子串”,所谓“子串”即字符串中的一部分。
(10)publicStringtoLowerCase()方法和publicStringtoUpperCase()方法toLowerCase方法的作用是将字符串中所有大写字符都转换为小写。toUpperCase方法的作用是将字符串中的小写字符转换为对应的大写字符。String类的常用方法6.2.4String类
(11)publicStringtrim()方法
该方法的作用是去掉字符串开始和结尾的所有空格,然后形成一个新的字符串。该方法不去掉字符串中间的空格。(12)publicstaticStringvalueOf()方法
该方法的作用是将其它类型的数据转换为字符串类型,其参数可以是任何数据类型(byte类型除外)。需要注意的是,基本数据和字符串对象之间不能使用以前的强制类型转换的语法进行转换。String类的常用方法6.2.5StringBuffer类
StringBuffer类和String类一样也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。StringBuffer对象的初始化StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。StringBuffers=newStringBuffer();StringBuffers=newStringBuffer(“abc”);StringBuffers=newStringBuffer(10);6.2.5StringBuffer类StringBuffer的常用方法
(1)publicStringBufferappend(booleanb)方法
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。
(2)publicStringBufferdeleteCharAt(intindex)方法
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。
(3)publicStringBufferinsert(intoffset,booleanb)方法
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。6.2.5StringBuffer类StringBuffer的常用方法
(4)publicStringBufferreverse()方法
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。
(5)publicvoidsetCharAt(intindex,charch)方法
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。
(6)publicStringBufferreplace(intstart,intend,Stringstr)方法
该方法的作用是将StringBuffer对象中的内容从start位置开始,到end结束的字符串以str代替。6.2.6StringTokenizer类StringTokenizer的初始化StringTokenizer类有两个常用构造方法:StringTokenizer(Strings):为字符串s构造一个分析器。StringTokenizer(Strings,Stringdelim):为字符串s构造一个分析器。参数delim中的字符被作为分隔符。6.2.6StringTokenizer类StringTokenizer的常用方法
(1)countTokens(),返回StringTokenizer类包含的元素个数。
(2)hasMoreElements(),判断是否还有更多元素。
(3)hasMoreTokens(),判断是否还有更多元素。
(4)nextElement(),返回StringTokenizer类的下一个元素。
(5)nextToken(),返回StringTokenizer类的下一个元素。6.3案例实施6.3.1编写源代码6.3.2编译源代码6.3.3运行程序6.4训练与实战训练内容杨辉三角形有以下特点:每行的元素个数等于该行的行号,即第n行有n个元素;且第1行只有一个元素1;从第2行开始每行的第1个和最后一个元素为1,每行的第n个元素是上一行第n-1个元素和第n个元素的和。训练目的输出杨辉三角形的前4行。6.4.1杨辉三角形6.4.1杨辉三角形训练过程
1.编写源代码Yang.java
2.编译和运行程序在命令提示符窗口下,将路径切换到D:\project\ch06,然后输入:javacYang.java编译完成后,输入:javaYang按回车键6.4.2身份证号码中的秘密训练内容一个身份证号码中包含着本人所在地区、出生日期等重要信息。在开发一个软件的过程中,要从身份证号码中取出一个人的生日信息。训练过程
1.编写源代码2.编译和运行程序在命令提示符窗口下,将路径切换到D:\project\ch06,然后输入:javacTes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中南大学《高等代数(一)》2021-2022学年第一学期期末试卷
- 中南大学《材料化学与工程》2022-2023学年第一学期期末试卷
- 中国劳动关系学院《走近大诗人》2022-2023学年第一学期期末试卷
- 《向量的空间坐标》课件
- 电气控制技术学习通超星期末考试答案章节答案2024年
- 数据库系统原理及应用学习通超星期末考试答案章节答案2024年
- 产后贫血的护理要点
- 何为私立医疗
- 《光缆线路工程基础》课件
- 中国矿业大学《信号检测与自动控制原理》2022-2023学年期末试卷
- 江苏高职单招报考指南
- GJB9001C质量保证大纲
- 24春国家开放大学《农村环境保护》形成性考核册参考答案
- 教科版小学科学四上《1.4我们是怎样听到声音的》课件
- 高标准农田建设施工总平面布置方案
- 医疗器械召回管理办法培训
- 战争与和平-美术作品反映战争 课件-2023-2024学年高中美术湘美版(2019)美术鉴赏
- 解码国家安全智慧树知到期末考试答案2024年
- 阻生牙拔除的护理
- 两癌知识科普课件
- 厦门市2023-2024学年度第一学期高一年级质量检测数学试题(定稿)
评论
0/150
提交评论