第5章Java常用类和接口_第1页
第5章Java常用类和接口_第2页
第5章Java常用类和接口_第3页
第5章Java常用类和接口_第4页
第5章Java常用类和接口_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第5章Java常用类和接口,5.1字符串处理类,在Java中,字符串是作为内置对象进行处理的,在java.lang包中,有两个专门的类用来处理字符串,分别是String和StringBuffer,本节重点介绍这两个类的用法。,5.1.1String类,String类表示了定长、不可变的字符序列,Java程序中所有的字符串常量(如“abc”)都作为此类的实例来实现。它的特点是一旦赋值,便不能改变其指向的字符串对象,如果更改,则会指向一个新的字符串对象。下面介绍String中常用的一些方法。,5.1.1String类,1、构造方法String()String(bytebytes)String(byteascii,inthibyte)String(bytebytes,intoffset,intlength)String(byteascii,inthibyte,intoffset,intcount)String(bytebytes,intoffset,intlength,StringcharsetName)String(bytebytes,StringcharsetName)String(charvalue)String(charvalue,intoffset,intcount)String(intcodePoints,intoffset,intcount)String(Stringoriginal)String(StringBufferbuffer)String(StringBuilderbuilder),5.1.1String类,2、length()方法字符串的长度是指其所包含的字符的个数,调用String的length()方法可以得到这个值。,5.1.1String类,3、字符串连接“+”运算符可以连接两个字符串,产生一个String对象。也允许使用一连串的“+”运算符,把多个字符串对象连接成一个字符串对象。,5.1.1String类,4、charAt()方法此方法的形式:charcharAt(intwhere)其中,where是想要得到的字符的下标,并且其值必须为非负的,它指定了在字符串中的位置。,5.1.1String类,5、getChars()方法此方法的形式:VoidgetChars(intsourceStart,intsourceEnd,chartargte,inttargetStart)其中,sourceStart表示子字符串的开始位置,sourceEnd是子字符串结束的下一个字符的位置,因此截取的子字符串包含了从sourceStart到sourceEnd-1的字符,字符串存放在字符数组target中从targetStart开始的位置,在此必须确保target应该足够大能容纳所截取的子串。,5.1.1String类,6、getBytes()方法此方法使用平台的默认字符集将此字符串编码为byte序列,并将结果存储到一个新的byte数组中。也可以使用指定的字符集对字符串进行编码,把结果存到字节数组中,String类中提供了getBytes()的多个重载方法。,5.1.1String类,7、字符串的比较(1)equals()和equalsIgnoreCase()方法前者比较两个字符串的时候对字母大小写是敏感的,而后者不区分字母大小写。(2)startsWith()和endsWith()方法startsWith()方法判断一个给定的字符串是否从一个指定的字符串开始,而endsWith()方法判断字符串是否以一个指定的字符串结尾。(3)equals()与=的区别equals()方法比较字符串对象中的字符是否相等,而=运算符则比较两个对象引用是否指向同一个对象(4)compareTo()方法比较两个字符串的大小关系(按字母在字典中出现的先后顺序)。,5.1.1String类,8、字符串的搜索(1)indexOf()方法indexOf方法有4种形式,分别如下:intindexOf(intch)intindexOf(intch,intfromIndex)intindexOf(Stringstr)intindexOf(Stringstr,intfromlndex)(2lastlndexOf()方法lastlndexOf方法也有4种形式,分别如下。intlastIndexOf(intch)intlastIndexOf(intch,intfromIndex)intlastIndexOf(Stringstr)intlastlndexOf(Stringstr,intfromlndex),5.1.1String类,9、字符串修改字符串的修改包括取字符串中的子串、字符串之间的连接、替换字符串中的某字符、消除字符串的空格等功能。在String类中有相应的方法来提供这些功能:Stringsubstring(intstartIndex)Stringsubstring(intstartIndex,intendlndex)Stringconcat(Stringstr)Stringreplace(charoriginal,charreplacement)Stringreplace(CharSequencetarget,CharSequencereDlacenStringtrim(),5.1.1String类,10、ValueOf()方法valueOf()方法是定义在String类内部的静态方法,利用这个方法,可以将几乎所有的Java简单数据类型转换为String类型。这个方法是String类型和其他Java简单类型之间的一座转换桥梁。除了把Java中的简单类型转换为字符串之外,valueOf方法还可以把Object类和字符数组转换为字符串。valueOf()的通用形式如下,总共有9种形式。staticStringvalueOf(booleanb)staticStringvalueOf(charc)staticStringvalueOf(chardata)staticStringvalueOf(chardata,intoffset,intcount)staticStringvalueOf(doubled)staticStringvalueOf(floatf)staticStringvalueOf(inti)staticStringvalueOf(1ong1)staticStringvalueOf(Objectobj),5.1.1String类,11、toString()方法toString()方法是在Object中定义,所以任何类都具有这个方法。然而toString()方法的默认实现是不够的,对于用户所创建的大多数类,通常都希望用自己提供的字符串表达式重载toString()方法。toString()方法的一般形式:StringtoString()。实现toString()方法,仅仅返回一个String对象,该对象包含描述类中对象的可读的字符串。通过对所创建类的toString()方法的覆盖,允许得到的字符串完全继承到Java的程序设计环境中。例如它们可以被用于print()和println()语句以及连接表达式中。,5.1.2StringBuffer类,在实际应用中,经常会遇到对字符串进行动态修改,这时String类的功能就受到了限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。StringBuffer表示变长的和可写的字符序列。StringBuffer类可有插入其中或追加其后的字符或子字符串,还可以针对这些添加自动地增加空间,同时它通常还有比实际需要更多的预留字符,从而允许增加空间。,5.1.2StringBuffer类,1StringBuffer的构造方法StringBuffer定义了四个构造方法:StringBuffer()StringBuffer(intcapacity)StringBuffer(Stringstr)StringBuffer(CharSequenceseq),5.1.2StringBuffer类,2append()方法可以向已经存在的StringBuffer对象追加任何类型的数据,StringBuffer类提供了相应append()方法,如下所示:StringBufferappend(booleanb)StringBufferappend(charc)StringBufferappend(charstr)StringBufferappend(charstr,intoffset,intfen)StringBufferappend(CharSequences)StringBufferappend(CharSequences,intstart,intend)StringBufferappend(doubled)StringBufferappend(floatf)StringBufferappend(inti)StringBufferappend(10nglng)StringBufferappend(Objectobj)StringBufferappend(Stringstr)StringBufferappend(StringBuffersb),5.1.2StringBuffer类,3length()和capacity()方法对于每一个StringBuffer对象来说,有两个很重要的属性,分别是长度和容量。通过调用length()方法可以得到当前StringBuffer的长度,而通过调用capacity()方法可以得到总的分配容量。它们的一般形式如下:intlength()intcapacity(),5.1.2StringBuffer类,4ensureCapacity()和setLength()方法如果想在构造StringBuffer之后为某些字符预分配空间,可以使用ensureCapacity方法设置追加缓冲区的大小,即在默认16个字符缓冲区大小的基础上,再追加若干个字符的缓冲区。这个方法是在事先已知要在StringBuffer上追加大量字符串的情况下是使用的。ensureCapacity方法的一般形式如下:voidensureCapacity(intminimumCapacity)参数minimumCapacity就是要在原来缓冲区的基础上追加的缓冲区大小。使用setLength方法可以设置字符序列的长度。其一般形式如下:voidsetLength(intlen)这里len指定了新字符序列的长度,这个值必须是非负的。当增加缓冲区的大小时空字符将被加在现存缓冲区的后面。如果用小于length方法返回的当前值的值调用setLength方法,那么在新长度之后存储的字符将被丢失。,5.1.2StringBuffer类,5insert()方法它是先调用String类的valueOf方法得到相应的字符串表达式。随后这个字符串被插入所调用的StringBuffer对象中。insert方法有如下几种形式:StringBufferinsert(intoffset,boo1eanb)StringBufferinsert(intoffset,cbarc)StringBufferinsert(intoffset,charstr)StringBufferinsert(intindex,charstr,intoffset,intlen)StringBufferinsert(intdstOffset,CharSequences)StringBufferinsert(intdstOffset,CharSequences,intstart,intend)StringBufferinsert(intoffset,doubled)StringBufferinsert(intoffset,floatf)StringBufferinsert(intoffset,inti)StringBufferinsert(intoffset,longl)StringBufferinsert(intoffset,Objectobj)StringBufferinsert(intoffset,Stringstr),5.1.2StringBuffer类,6reverse()方法可以使用reverse()方法将StringBuffer对象内的字符串进行翻转,它的一般形式如下:StringBufferreverse(),5.2集合类,学习Java语言,就必须学习如何Java的集合类,本节主要介绍Java.util包中的一些集合类以及接口的使用,掌握这些类和接口的应用会为实际的编程带提供诸多便利。,5.2.1集合的概念,集合是存放一组数据的容器,能够实现对数据的存储、检索和操纵。集合的最大特点就是长度不固定,相对长度固定的数组来说集合的应用就比较广泛了。集合的另一个特点就是是集合中必须存放对象。Java平台提供了一个集合框架来表示和操纵集合的统一体系结构,Java中的集合框架图如下图所示。,5.2.1集合的概念,5.2.2Collection接口,Collection是集合类的基本接口,它用来说明作为一个集合类应有的结构特征属性和带有共性的操作方法。它的子接口有List、Set。List接口规定实现其的集合类元素,具有可以控制的顺序,但并没有定义或限制按什么排序,实现List接口的类有AbstractList、ArrayList、LinkList和Vector;Ser不能包含重复的元素,它的实现类有AbstractSet、HashSet、LinkedHashTable和TreeSet。,5.2.2Collection接口,Collection提供的主要方法有:(1)单元素添加、删除操作booleanadd(Ee):将对象添加给集合。booleanremove(Objecto):如果集合中有与o相匹配的对象,则删除对象o。(2)查询操作intsize():返回当前集合中元素的个数。booleanisEmpty():判断集合中是否有任何元素,如果没有则返回true,否则返回false。booleancontains(Objecto):查找集合中是否含有指定的对象。Iteratoriterator():返回一个迭代器,用来访问集合中的各个元素。,5.2.2Collection接口,Collection提供的主要方法有:(3)组操作:作用于元素组或整个集合booleancontainsAll(Collectionc):查找集合中是否含有集合c中的所有元素。booleanaddAll(Collectionc):将集合c中全部元素添加到该集合中。voidclear():删除集合中所有元素。voidremoveAll(Collectionc):从集合中删除集合c中的所有元素。voidretainAll(Collectionc):从集合中删除集合c中不包含的元素。(4)Collection转换为Object数组ObjecttoArray():返回一个内含集合所有元素的数组。TtoArray(Ta):返回一个内含集合所有元素的array。运行期返回的array和参数a的类型相同。,5.2.3对集合类遍历的接口,遍历接口主要有枚举接口Enueration和迭代器接口Iterator。它们的共同点是:先检索有没有相应的指向对象,为true的情况,再返回相应的对象引用。对集合类对象中的元素进行遍历常用Iterator,Enumeration仅限于特定类,如Vector、HashTable等。,5.2.3对集合类遍历的接口,1Enumeration接口,5.2.3对集合类遍历的接口,2Iterator接口,5.2.4Map接口,Map接口没有继承Collection接口,所以它们的特性有所不同。Map接口用于将一个键(key)映射到一个值(value),且不允许有重复的键。关键字是以后用于检索值的对象,给定一个关键字和一个值,可以存储这一对映射到一个Map对象中,然后就可以根据这个映射中的关键字来检索对应的值。,5.2.4Map接口,Map接口常用的方法:,5.2.4Map接口,使用Map遍历访问所有元素的一般方法如下:Setentries=map.entrySet();If(entries!=null)Iteratoriterator=entry.iterator();While(iterator.hasNext()Map.Entryentry=interator.next();Kkey=entry.getKey();Vvalue=entry.getValue();,5.2.5常用集合类,5.3时间日期类,Java语言没有提供时间日期的简单数据类型,它采用类对象来处理时间和日期。本节主要介绍几个常用的时间日期类,熟悉它们的使用方法,对我们进行程序开发会有很大的帮助。,5.3.1Date类,1Date常用的构造方法publicDate():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。publicDate(longdate):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00GMT)以来的指定毫秒数。,5.3.1Date类,Date常用的方法,5.3.2Calendar,Calendar是一个抽象类,它提供了一组方法允许将以毫秒为单位的时间转换成一组有用的分量。Calendar没有公共的构造方法,要得到其引用,不能使用new,而要调用其静态方法getInstance得到一个Calendar对象,然后调用相应的对象方法。,5.3.2Calendar,Calendar的常见方法如表所示。,5.3.3DateFormat类,DateFormat是对日期/时间进行格式化的抽象类,它以独立于local的方式,格式化分析日期或时间,该类位于java.text包中。DateFormat提供了很多方法,利用它们可以获得基于默认或者给定语言环境和多种格式化风格的默认日期/时间Formater。,5.3.4SimpleDateFormat类,它是DateFormat的子类,如果希望定制日期数据的格式,比如:星期三22:01:10。SimpleDateFormat类以对local敏感的方式对日期和时间进行格式化和解析。它的format方法可将Date转为指定日期格式的String,而parse方法将String转换为Date。,5.4Math类,Math类也是java.1ang中的一个类,它保留了一些常用的数学函数,是Java中的数学工具包。,5.4Math类,Math类常用方法见下表,5.5随机数处理类Random,随机数是一个非常有用的工具,上面介绍的Math中的random方法只能生成0.0到1.0之间的随机实数,要想生成其他类型和区间的随机数必须进一步加工。而java.util包中的Random类可以生成任何类型的随机数流。,5.5随机数处理类Random,Random常用方法见下表,5.6.1System类,System类是java.lang包中一个非常重要的类,该类中定义的方法和属性都是静态的。它有三个静态的属性:in、out、error,标准输入流in对应键盘输入或者指定的输入源,标准输出流out对应显示器以及用户指定的输出源,标准的错误输出流error对应于显示器以及用户指定的输出源。,5.6.1System类,常用方法:1arraycopy方法使用arraycopy方法可以将一个任意类型的数组快速地从一个地方复制到另一个地方,这笔使用java中编写的循环要快得多。此方法的定义形式为:publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)其功能是从指定的源数组src的指定位置srcPos,复制到指定的目标数组dest的指定位置,复制的长度是length。,5.6.1System类,常用方法:2currentTimeMillis()方法可以利用currentTimeMillis()方法来记录程序的不同部分执行的时间。此方法返回自1970年1月1号午夜起到现在的时间,单位是毫秒。可以在程序开始运行时调用currentTimeMillis方法,得到一个值,然后在程序结束运行时再调用该方法,得到一个值,两者之差就是程序的运行时间。它的一般形式为:StaticlongcurrentTimeMillis(),5.6.1System类,3和系统属性有关的方法System类中提供了一些方法可以获得系统的属性和状态信息以及对这些信息进行修改,主要有以下方法。PropertiesgetProperties():得到当前系统的属性,属性存放在Properties对象中。setProperties(Propertiesprops):设置系统的属性,新的属性值存放在props中。StringgetProperty

温馨提示

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

评论

0/150

提交评论