Java程序设计课件第四章数组字符串向量与哈希表.ppt_第1页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第2页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第3页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第4页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计第四章数组、字符串、向量和哈希表,讲授人:傅晓阳教授,DavidFu,上章回顾,final,abstract与static分别有什么用法?接口的作用是什么?完成一个“Animal”接口,接口中有方法“sleep”与“prey”.定义一个浮点数x为15.8,定义一个字符变量c为t;重载和覆盖的区别?类中的变量域与方法有几种访问说明符,分别是什么,“两个类在不同的包中,一个类可以访问另一个类中用protected修饰的方法“,这句话对不对,为什么?,DavidFu,本章课程纲要,字符串,数组,DavidFu,本课程纲要,多维数组的用法,一维数组的用法,一维数组定义,数组,DavidFu,一维数组定义,数组变量的声明:数组类型数组变量;例如:intvar;Stringstr;但在java编程中,比较常用的是将方括号放在数组变量的前面。这比较适合一次声明多个数组变量,例如:doublea,b,c,d;但如果采用第二种方式定义多个数组变量则会出现错误,例如:doublea,b,c,d;,DavidFu,数组对象的创建,new操作符数据类型数组变量=new数据类型数组长度;intvar=newint5;lengthvar0var1var2var3var4,DavidFu,数组对象的创建,数组初始化语句数据类型数组变量名=数组元素1,数组元素2,数组元素n;例如:inta=1,2,6,25,30;charc=j,a,v,a;,DavidFu,数组元素的访问,数组元素中存储了一组相同类型的数据,通过数组下标来访问数组中的各个元素的。数组变量名数组元素下标a3,c2数组元素保存了数组中的一个数据值,对于以上定义的数组,例如:a3=25;c2=v;,DavidFu,数组元素的访问,数组可以通过对数组元素的修改来改变数组的数值。a3=80;c3=v;通过对数组元素的更改,原数组将改变为:inta=1,2,6,80,30;charc=j,a,v,v;,DavidFu,数组元素的访问,数组的数据元素的类型也可以是引用数据类型String,Student对于引用类型数组的数据单元进行赋值时,需要使用new来创建一个新的对象,并将该对象的引用赋值给数组变量Studentstu=newStudent30;stu0=newStudent(“20080401”,“张三”);Stringstr=newString5;str0=newString(“java”);str1=newString(“hello”);,DavidFu,引用数组的声明与对象元素的赋值过程,DavidFu,本课程纲要,多维数组的用法,一维数组的用法,一维数组定义,数组,DavidFu,一维数组的用法,下面通过一个一维数组的实例来说明该例题是解决一个数据排序的问题。一维数组的声明/声明整型数组a,以及其他整型变量inta;创建对象/根据用户输入的数组长度,创建整型数组a=newintarrayLength;,DavidFu,一维数组的用法,初始化数据for(i=0;ia.length;i+)ai=Integer.parseInt(“10”);数组元素的使用if(ajai)temp=ai;ai=aj;aj=temp;,DavidFu,本课程纲要,多维数组的用法,一维数组的用法,一维数组定义,数组,DavidFu,多维数组定义数组,多维数组的声明格式如下:数据类型数组变量;数据类型数组变量;其中,代表数组的维数。例如,声明一个字符型的二维数组和整型的三维数组:charc_array;inttri_array;,DavidFu,多维数组创建数组对象,(1)直接创建数组对象直接创建数组对象的格式为:数据类型数组变量=new数据类型第n维元素的个数第n-1维元素的个数第1维元素的个数;例如,创建一个三维整型数组:inttri_array=newint235;,DavidFu,多维数组创建数组对象,(2)逐次创建数组对象多维数组也可以象一维数组那样创建对象,可以从高维到低维逐次创建,其格式为:new数据类型第n维元素的个数;new数据类型第n-1维元素的个数;new数据类型第1维元素的个数;对于二维的字符型数组可以如下创建数组对象:charc_array;c_array=newchar2;c_array0=newchar3;,DavidFu,多维数组创建数组对象,(3)初始化语句枚举数组对象。初始化语句枚举数组对象类似于一维数组对象的初始化过程,其格式为:数组元素变量名=数组元素i1,数组元素i2数组元素im;例如:charc_array=a,b,c,d,e;参见实例4-2weatherShow.java,DavidFu,本章课程纲要,字符串,数组,DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,DavidFu,常量字符串String,创建字符串对象对于常量字符串的创建有两种方法:(1)字符串直接量赋值方式;(2)采用new运算符创建字符串对象方式。,DavidFu,字符串直接量赋值方式,字符串池示意图,DavidFu,字符串直接量赋值方式,字符串池存储方式示意图,DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,DavidFu,字符串数据类型的转换,(1)基本类型转换为字符串类型采用String类的成员方法valueOf()。Stringstr=String.valueOf(15);在java语言中,存在一个鼻祖类Object,它是任何类的父类,该类中包含一个成员方法publicStringtoString()将整型类型的a(20)转换成字符串类型str(“20”)Stringstr;Integera=newInteger(20);Str=a.toString();,DavidFu,字符串数据类型的转换,将字符串类型的数据转换成基本数据类型,这可以通过基本数据类型的封装类(参见前面章节的关于封装类的说明)中的成员方法来实现字符串向基本数据类型的转换。将字符串“20”转换成整型20Stringstr=“20”;intplusA=Integer.parseInt(str);,DavidFu,字符串中字符的操作,计算字符串的长度publicintlength()返回字符串对象中第(index+1)个字符publiccharcharAt(intindex)返回参数ch指定的字符所在的最小下标索引值publicintindexOf(intch)返回由参数ch指定的字符在当前字符串序列中的最大下标索引值。publicintlastIndexOf(intch),DavidFu,字符串的拼接,(1)使用String的成员方法publicStringconcat(Stringstr)该方法首先创建一个新的字符串对象序列,将参数str字符串拼接到调用该方法的字符串对象的字符串序列后面。在此,str字符串不允许为null。(2)使用“+”运算符Strings=“java”+“1234”;S字符串的值为“java1234”,DavidFu,字符串的拼接,Strings=5+5+“hello”S=10hello首先将+前面的整数10转换成字符串“10”,然后将“hello”字符串拼接到“10”的后面,组成新的字符串“10hello”Strings=“hello”+5+5S=hello55首先将加号右边的整数5转换成字符串“5”,然后拼接到“hello5”的后面,得出最后结果“hello55”,DavidFu,字符串中字符替换和转换,字符串中字符替换publicStringreplace(charoldChar,charnewChar)字符串大小写转换publicStringtoLowerCase()publicStringtoUpperCase()截取字符子串publicStringsubstring(intbeginIndex)PublicStringsubstring(intbeginIndex,intendIndex),DavidFu,字符串之间的比较,比较字符串的四个成员方法publicintcompareTo(StringotherString)publicintcompareToIgnoreCase(Stringstr)publicBooleanequals(Objectobj)publicBooleanequalsIgnoreCase(Objectobj),DavidFu,字符串之间的比较,“”与equals()方法进行字符串比较时的主要区别如下:“”运算符进行字符串比较时,主要比较“”两边的字符串对象的引用值,即字符串所在内存的地址,不管字符串内容是否相等,只要指向两个字符串对象的引用值相等,“”运算符进行比较的结果就是true;equals()方法进行字符串比较时,比较的是字符串是否相等,而不管字符串对应的引用值是否相等。因此,equals()方法是真正适合进行字符串比较的方法。,DavidFu,字符串之间的比较,计算b1、b2、b3、b4的值Strings3=hello;Strings4=hello;Strings5=newString(Hello);booleanb1=(s3s4);booleanb2=(s4s5);booleanb3=(s3.equals(s4);booleanb4=(s4.equals(s5);,DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,DavidFu,变量字符串StringBuffer,变量字符串类java.lang.StringBuffer类创建的字符串实例对象后,可以修改字符串中的字符序列。StringBuffer类具有一个缓冲区机制,即字符串的长度也是可变的这种缓冲机制可以很好的自动管理字符串的内存空间,提高了内存的利用率StringBuffer类具有以下几个重载构造方法:PublicStringBuffer()PublicStringBuffer(intcapacity)PublicStringBuffer(Stringstr),DavidFu,变量字符串StringBuffer,StringBuffer类中采用两个成员方法进行容量设置publicintlength()该方法返回字符串缓冲区长度。publicintcapacity()该方法返回字符串缓冲区的容量。确保最小缓冲容量的成员方法publicvoidensureCapacity(intminCapacity)将字符串缓冲区的容量减少到等于字符串缓冲区的长度publicvoidtrimToSize(),DavidFu,变量字符串StringBuffer,StringBuffer类也同样具有与String类相类似的以上成员方法PublicvoidsetLength(intnewLength)PubliccharcharAt(intindex)PublicvoidsetCharAt(intindex,charch)PublicvoidindexOf(Stringstr)PublicvoidindexOf(Stringstr,intfromIndex)PublicintlastIndexOf(Stringstr)PublicintlastIndexOf(Stringstr,intfromIndex),DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,DavidFu,StringBuffer字符串操作,(1)字符串增加操作appendStringBufferstb=newStringBuffer(“javaprogram”);stb.append(!);(2)字符串插入操作insertStringBufferstb=newStringBuffer(“javaprogram”);stb.insert(0,“test”);,DavidFu,StringBuffer字符串操作,(3)删除字符串操作publicStringBufferdelete(intstart,intend)StringBuffersb=new

温馨提示

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

评论

0/150

提交评论