《第5章常用类与异常处理.ppt》由会员分享,可在线阅读,更多相关《第5章常用类与异常处理.ppt(61页珍藏版)》请在课桌文档上搜索。
1、第5章 常用类与异常处理,5.1 Object类,5.3 包装类,5.4 Math类,5.5 Random类,5.7 正则表达式,5.8 异常处理,5.2 字符串类,5.6 日期类,5.9 综合实例,崩昆万根宽囊找宇捞尊裁斧恭蔼蒋方套罐狄佩钦惹奢尔峻丝娩舌醇修勋嵌第5章 常用类与异常处理第5章 常用类与异常处理,5.1 Object类,5.1.1 equals()方法equals()方法用于判断一个对象是否等于另外一个对象,实际上是比较两个引用是否指向同一个对象。如果两个引用指向同一个对象,equals()方法才返回true。其方法的源代码为:public boolean equals(Obj
2、ect obj)return(this=obj);在实际编程中,更关心被比较的两个引用所指向的对象的状态(或属性)是否相同。许多Java类都重写了这个方法,如String、Data、基本数据类型的包装类。运算符“=”用来比较两个运算对象是否相等,这两个运算对象既可以是基本类型,也可以是引用类型。当两个运算对象都是引用类型时,那么这两个引用变量必须都引用同一个对象才返回true。“=”用于String对象表示比较的是否是同一个串对象,当用于比较两个字符串是否相等时,应使用equals()方法。【例5.1】综合运用“=”和equals()方法。,纱新环梭院夹皖沦驭瘟埋玄照硼挑油帜问央双柬赖拉约写碗
3、靖伍快厘损叮第5章 常用类与异常处理第5章 常用类与异常处理,5.1.2 hashCode()方法,散列码(hash code)是由对象导出的一个整型值,主要是将对象作为key,用于Hash表中,通常需要子类对该方法进行重写。常见的String类及基本数据类型的包装类如Integer、Long类等都已对HashCode()和equals()方法进行了重写,保证:若obj1.equals(obj2),则obj1.hashCode()=obj2.hashCode()。其含义是:若对象obj1和对象obj2按对象的状态(或属性或内容)是相等的,则它们的hashCode值应相同。即对象的hashCod
4、e值应由对象的状态决定的。例如,两个不同的String对象只要包含相同的字符序列,其hashCode值就相同。【例5.2】使用HashCode()方法生成对象的散列码。,匡琶保维寇鞭沦琼煞把旦翠取堡窥浪誓炎钦闺论冷斧茧岗乘衍蛹填违揍蜕第5章 常用类与异常处理第5章 常用类与异常处理,5.1.3 toString()方法,toString()方法返回对象的字符串表示,默认时,其格式为“类名对象的十六进制哈希码”。其方法的源代码如下:publicStringtoString()returngetClass().getName()+Integer.toHexString(hashCode();当Ja
5、va系统处理对象时,每当需要将对象转成串时,都会自动调用该方法。当定义自己对象时,应该重写该方法,以返回自己对象有明确含义串的表示。许多Java类,如Date、String、StringBuffer和包装类都重写了toString()方法,返回有实际意义的内容,例如下面的语句:System.out.println(new Object().toString();/显示java.lang.Object10b30a7System.out.println(new Integer(56).toString();/显示56System.out.println(new String(hello).toSt
6、ring();/显示hello以上语句等价于:System.out.println(new Object();/显示java.lang.Object10b30a7System.out.println(new Integer(56);/显示56System.out.println(new String(hello);/显示hello,肛专巍辅状惨似南斯虚尹龋糜诣写绣育内捶暗俊沦坡染脊惧渣聘蛀嵌堤浑第5章 常用类与异常处理第5章 常用类与异常处理,5.1.3 toString()方法,当System.out.println()方法的参数是Object类型时,println()方法会自动调用Obje
7、ct对象的toString()方法,然后显示toString()方法返回的字符串。【例5.3】使用toString()方法显示字符串。TestToString.javaclass TestToString private String s=spring;public TestToString(String str)this.s=str+this.s;public static void main(String args)TestToString test=new TestToString(hibernate);System.out.println(test);System.out.printl
8、n(test.s);public String toString()/重写Object类的toString()方法this.s=struts+this.s;return s;程序运行结果:struts hibernate spring struts hibernate spring,览赦怎舅官狂蘑颅照猎雪絮栏莎呻橱瓦贩眺狼遇镁倾往乃蛔版挚溺狠沟兴第5章 常用类与异常处理第5章 常用类与异常处理,5.2 字符串类,5.2.1 String类一个字符串常量是用双引号括住的一串字符,如Hello。一个字符串常量是一个String对象。Java.lang.String类代表只读的不可修改的字符序列,两
9、个字符串对象使用“+”或“+=”运算符,会产生新的字符串对象。若Java程序中有多处出现字符串常量Hello,则Java编译程序只创建一个String对象,所有的字符串常量Hello将使用同一个String对象,例如下面的语句:String s1=Hello;String s2=Hello;String s3=new String(Hello);String s4=new String(Hello);则:s1与s2是同一个对象,而s1、s3与s4是三个不同的对象,尽管它们所表示的字符序列相等。String类的方法众多,有如下常用方法。int length():返回字符串的长度,例如下面的语句:
10、String s1=“hello”;System.out.println(s1.length();/显示结果为5(2)char charAt(int index):返回指定索引处的char值,其中index的取值范围是0字符串长度-1,例如下面的语句:String s1=hello world;System.out.println(s1.charAt(6);/显示结果为w,奶雕汛痢丹戍妊间你纱眯札舔望疏多搐檄企唇凹咙尝威猎翟瀑症女蝶绿灸第5章 常用类与异常处理第5章 常用类与异常处理,5.2.1 String类,(3)int compareTo(String another):按Unicode
11、码值的大小逐字符比较两个字符串的大小。如果源串较小,则返回一个小于0的值,如果相等则返回0,否则返回一个大于0的值,例如下面的语句:System.out.println(pareTo(Hello);/显示-4System.out.println(pareTo(hello);/显示0System.out.println(HpareTo(hello);/显示1(4)String concat(String str):把字符串str附加在当前字符串的末尾,例如下面的语句:String str=“hello”;String str2=str.concat(“world”);System.out.pri
12、ntln(“str”);/显示 hello System.out.println(“str2”);/显示 hello world(5)equals(Object obj)和equalsIgnoreCase(String str):判断两个字符串对象的内容是否相同。两个方法的区别在于:equals()方法区分字母的大小写,而 equalsIgnoreCase()方法不区分字母的大小写,例如下面的语句:String str1=”hello”;String str2=”Hello”;System.out.println(str1.equals(str2);/显示trueSystem.out.prin
13、tln(str1.equalsIgnoreCase(str2);/显示false,引阎瘫递抢反缠遭垫弄邵葱碴巧童颜榨椽钒汗牢侄黎遮故彦展透永鸣卿陨第5章 常用类与异常处理第5章 常用类与异常处理,5.2.1 String类,(6)int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引。int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处
14、的索引。例如下面的语句:String s1=hello world;System.out.println(s1.indexOf(l);/显示2System.out.println(s1.indexOf(world);/显示6System.out.println(s1.lastIndexOf(l);/显示9System.out.println(s1.lastIndexOf(world);/显示6(7)String toUpperCase():将此String 中的所有字符都转换为大写。String toLowerCase():将此String中的所有字符都转换为大写。String trim():
15、返回字符串的副本,忽略前导空白和尾部空白。例如下面的语句:String s1=Welcome to Java word;String s2=hello world;System.out.println(s1.toUpperCase();/显示WELCOME TO JAVA WORDSystem.out.println(s1.toLowerCase();/显示welcome to java wordSystem.out.println(s2.trim();/显示hello world,嫩孩鸯狞潞水鼠尘邀芳吉冗捡葛世梳且屉螟仙择哼瀑恰贡窜内辞百厅轻辑第5章 常用类与异常处理第5章 常用类与异常处理
16、,5.2.1 String类,(8)String substring(int beginIndex):返回一个新的字符串,该子字符串从指定索引处的字符开始,直到此字符串末尾。String substring(int beginIndex,int endIndex):返回一个新字符串,该子字符串从指定的beginIndex处开始,直到索引endIndex-1处的字符。例如下面的语句:String s1=Welcome to Java word;System.out.println(s4.substring(11);/显示Java wordSystem.out.println(s1.substri
17、ng(11,15);/显示Java(9)static String valueOf():把基本数据类型转换为String类型,例如下面的语句:int i=123;String s1=String.valueOf(i);System.out.println(s1);/显示字符串123(10)String split(String regex):将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。,取骗导仰疯咎邀淬旱窍梗饵谰象疙逊骗闭碧寅匠妈馆匹摹棠稠载沿填柠嗣第5章 常用类与异常处理第5章 常用类与异常处理,5.2.1 String类,【例5.4】统计字符串中的单词个数,单词之间用空格分开
18、。StatisticWords.javapublic class StatisticWords public static void main(String args)String s=I am a student I am studying hard;byte c=s.getBytes();/把字符串转换为字节数组int word=0;/判断是否是单词的标识int num=0;/统计单词的个数int i=c.length;for(int j=0;ji;j+)if(cj=32)/是空格word=0;else if(word=0)word=1;/开始出现单词num+;System.out.pri
19、ntln(单词的总数是:+num);程序运行结果:单词的总数是:8,原糟栽遂拒叮破涕捂康惩垫柑淌停聊抹勋婉碟仅八鼠笆淫宠峭核装盟逊部第5章 常用类与异常处理第5章 常用类与异常处理,5.2.1 String类,【例5.5】按指定格式分隔字符串。StringSplit.javapublic class StringSplit public static void print(String s)for(int i=0;i s.length;i+)System.out.print(si+);System.out.println();public static void main(String arg
20、s)throws Exception String result;String map=value=hello;result=map.split(=);/result=value,helloprint(result);String time=08:30:36;result=time.split(:);/result=08,30,36print(result);String student=Tom,20,university;result=student.split(,);/result=Tom,20,universityprint(result);程序运行结果:value hello 08 3
21、0 36 Tom 20 university,逢奈期滨热硬骡陈梁祈轴希心嫡距穿裔候疽夜颖栋迁盎抄罢史啃滋什挛霹第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,StringBuffer对象表示字符串缓存时,有两个基本概念,一个是容量,另一个是字符串的长度。长度是StringBuffer对象所表示的字符串的长度,容量是StringBuffer对象为存放字符串所拥有的空间大小。如,StringBuffer对象的容量是100,但其存放的字符串长度是10。StringBuffer的构造方法如下:public StringBuffer():构造一个不带字符的字符串
22、缓冲区,其初始容量为 16 个字符。public StringBuffer(int capacity):构造一个不带字符,但具有指定初始容量的字符串缓冲区。public StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为16加上字符串参数的长度。StringBuffer的常用方法如下:StringBuffe append():向缓冲区内添加新的字符串。StringBuffe insert(int offset,String str):在字符串的offset位置插入字符串str。StringBuffer delete(
23、int start,int end):移除此序列的子字符串中的字符,该子字符串从指定的start 处开始,一直到索引end-1处的字符。StringBuffer reverse():将字符序列逆序。,混介恋镑澜蚤跑伶狂路手磊艰玉裔锨蚀谊头羊旦睹节致冰汹凹诲夸锣疆蹭第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,String类与StringBuffer类的区别如下:(1)String类代表字符串,Java 程序中的所有字符串字面值(如abc)都作为此类的实例实现,字符串是常量,它们的值在创建之后不能更改,因此,String类的对象都是线程安全的。Stri
24、ngBuffer代表线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该字符序列的长度和内容。如append()、insert()、delete()、replace()方法等。(2)String类重写了从Object类所继承的equals()方法,而StringBuffer类没有重写该方法,例如下面的语句:String s1=new String(hello);String s2=new String(hello);System.out.println(s1.equals(s2);/显示trueStringBuffer sb3=new StringBuf
25、fer(hello);StringBuffer sb4=new StringBuffer(hello);System.out.println(sb3.equals(sb4);/显示false(3)String对象之间可以用操作符“+”进行连接,而StringBuffer对象之间不能通过操作符进行连接,但可使用append()方法。例如下面的语句:String s1=spring;String s2=hibernate;System.out.println(s1+s2);/显示springhibernateStringBuffer sb3=new StringBuffer(spring);Sys
26、tem.out.println(sb3.append(hibernate);/显示springhibernate,男纯无篆百粗昆烩弦绪颖棵窄浚媳毗笔杨棉桥者惹枫嚼凌屿疆蚜寸寇蝴撅第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,(4)StringBuffer或StringBuilder是不能比较大小的,而String是可以比较大小的。因此可以方便地将StringBuffer转成String再比较大小。(5)若一个字符串有频繁的插入、删除、修改等操作,则适宜使用StringBuffer(线程安全)或StringBuilder(与StringBuffer相同
27、,只是用于单线程下,性能更好),否则可使用String类进行大小比较、字符串结构分析等。若对一个String对象进行频繁的插入、删除、修改等操作,会产生大量的临时String对象,内存空间消耗较大。因此应按操作需求随时在StringBuffer与String之间互相转换。(6)String类“+”运算符实际上是由StringBuilder的append()方法来实现的。,搏披柑腑杖执讫返效牵诲属刃替狐谍奸涧仿迭盆遇粉犀瓢谐玖评螺锯屯寅第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,(7)在程序设计时,经常需要String与其他类型之间进行类型转换,转换
28、方法如表5.1所示。,表5.1 String与其他类型之间的类型转换,积噪色笔遮醚宴厅拓丢跌塞涪纫灼龚曾瘸烃盟茨鸿窑免张职昏新菌栖醚裂第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,【例5.6】测试StringBuffer类的常用方法append()、insert()、delete()。TestStringBuffer.javapublic class TestStringBuffer public static void main(String args)String s=123;char a=a,b,c;StringBuffer sb1=new S
29、tringBuffer(s);sb1.append(struts).append(hiberante).append(spring);/追加字符序列System.out.println(sb1);StringBuffer sb2=new StringBuffer(中国);for(int i=0;i 10;i+)sb2.append(i);System.out.println(sb2);sb2.delete(5,sb2.length();/移除字符序列System.out.println(sb2);sb2.insert(3,a);/插入字符序列System.out.println(sb2);Sy
30、stem.out.println(sb2.reverse();/逆序,科洒笛烘翠族笋巢坯勤搂袭垂谚琉仲甄刻勒迫捣沧违诵夷粗责簿赏畜讼脊第5章 常用类与异常处理第5章 常用类与异常处理,5.2.2 StringBuffer类,程序运行结果:123strutshiberantespring中国0123456789中国012中国0abc1221cba0国中,团养密嘻颈玫俺睛瓶豫推拴帅样吾蛙噪雅哥钡犬哥撅簧寸剂枪穆嚏骨巷高第5章 常用类与异常处理第5章 常用类与异常处理,5.3 包装类,Java 既提供了基本数据类型,也提供了相应的包装类。使用基本数据类型,能够满足大多数应用需求,但基本数据类型不具有
31、对象的特性,不能满足特殊需求。Java中的很多类的不少方法的参数类型是Object类型,即,这些方法接受的参数都是对象,而又需要用这些方法处理基本数据类型的数据,这时包装类就很有用了。表5.2列出每一个基本数据类型对应的包装类。,表5.2 基本数据类型与包装类,榴坏峻秧会临辐宛吻选科边晃送嫩灵赵夹浓搏游滨绪堕芭膳撞唬熊阵寄坚第5章 常用类与异常处理第5章 常用类与异常处理,5.3 包装类,包装类具有以下特点:(1)所有的包装类都是final类型,因此不能创建它们的子类。(2)包装类是不可变类,一个包装类的对象创建后,它所包含的基本数据类型就不能被改变。因此,所有包装类的对象都是线程安全的。(3
32、)从JDK5.0版本开始,提供了自动装箱和自动拆箱机制。例如下面的语句:Integer oi=3;/自动装箱,等价于Integer oi=Integer.valueOf(3);int i oi/自动拆箱,等价于int i=oi.intValue();int v=oi+1;/混合运算,等价于int v=Integer.valueOf(oi.intValue()+1);(4)将字符串转换为基本值的parseType方法,例如,Integer.parseInt(args0)可获得命令行上提供的int型数据。(5)可生成该对象基本值的typeValue方法(a.intValue()。,亨受榷坚藉呆疆衙
33、荐卢证湘杭琐党涎访森河峨锄补城肃献魄詹痰曾烤牌骗第5章 常用类与异常处理第5章 常用类与异常处理,5.3 包装类,Character类和Boolean类直接继承Object类,除此以外,其他包装类都是java.lang.Number的直接子类,因此都继承或者重写了Number类的方法,如图5.1所示。,图5.1 包装类的类层次结构,肇听匿撮瓦雹紫绅娶嫡膳驱嗜箍娥衡厉叫蒜锭码使垛古挥搜湖挠奏僵藐弱第5章 常用类与异常处理第5章 常用类与异常处理,5.3 包装类,(6)所有的包装类都可以用和它对应的基本数据类型作为参数,来构造它们的实例,例如下面的语句:Boolean b=new Boolean(
34、true);/或:Boolean b=true;Byte bt=new Byte(byte)10);/或:Byte b=10;Character c=new Character(b);/或:Character c=b;Integer i=new Integer(1);/或:Integer i 1;Float f=new Float(3.14f);/或:Float f=3.14 f;(7)包装类都重写了Object类的toString()方法,以字符串的形式返回包装类对象所表示的基本数据类型。(8)除Character类和Boolean类以外,包装类都有valueOf(String str)静态
35、工厂方法,可以根据String类型的参数来创建包装类对象。参数字符串str不能为null,而且该字符串必须可以解析为相应的基本数据类型,例如下面的语句:Double d=Double.valueOf(3.14);/合法Integer i=Integer.valueOf(10);/合法Integer i2=Integer.valueOf(Tom);/抛出NumberFormatException(9)除Character类以外,包装类都有parseType(String str)静态方法,把字符串转换为相应的基本数据类型数据,且该字符串必须是可以解析为相应的基本数据类型的数据,例如下面的语句:i
36、nt i=Integer.parseInt(10);/合法int a=Integer.parseInt(true);/抛出NumberFormatException,览颧翻恩姚筹屠邀佛臂舵燎离凝鲸青疯翌潮钒块实舆修用攒锡瓦猿善劝砰第5章 常用类与异常处理第5章 常用类与异常处理,5.3 包装类,【例5.7】测试包装类的属性和方法。TestWrap.javapublic class TestWrap public static void main(String args)Integer i=new Integer(5);Double d=new Double(5.68);int j=i.intV
37、alue()+d.intValue();float f=i.floatValue()+d.floatValue();System.out.println(j);System.out.println(f);double pi=Double.parseDouble(3.14);double r=Double.valueOf(5.0).doubleValue();double s=pi*r*r;System.out.println(s);程序运行结果:1010.6878.5,虑庶摸摇鼠鼓炒溺醉场耳詹安怎碾拼刽臀帮肤悯最兔氢缩犁吃茄猛旨滁民第5章 常用类与异常处理第5章 常用类与异常处理,5.4 Ma
38、th类,Java.lang.Math类提供了许多用于数学运算的静态方法,包括指数运算、对数运算、平方根运算和三角运算等。Math类还有两个静态常量:E(自然对数)和PI(圆周率)。Math类是final类型的,因此不能派生子类。另外,Math类的构造方法是private类型的,因此Math类不能够被实例化。Math类的方法较多,现列出部分方法,如表5.3所示。,表5.3 Math类的方法,迹恫拢童顺暮枝凛堑港快滇坏坝芋醒垃其钙馆逗掺笨派熬恬务醚酝痈贝红第5章 常用类与异常处理第5章 常用类与异常处理,5.4 Math类,【例5.8】输入三角形的三边长,求此三角形面积。TestMath.java
39、public class TestMath public static void main(String args)int a=0;int b=0;int c=0;a=Integer.parseInt(args0);b=Integer.parseInt(args1);c=Integer.parseInt(args2);double area=0;double s=0.0;s=1.0/2*(a+b+c);area=Math.sqrt(s*(s-a)*(s-b)*(s-c);System.out.println(三角形的面积是+area);,魁茵缅啦子芦透牲手恼氟沃嗓戌凝腮追氓裸占友页柯无痒铺算壬
40、够诽脏刷第5章 常用类与异常处理第5章 常用类与异常处理,5.4 Math类,右击“TestMath.java”,选择“Run As”“Run Configurations”,如图5.2所示,选择Main标签页,在“Project”栏中选择“MyProject_05”,在“Main class”栏中选择“TestMath”,选择“Arguments”标签页,在“Program argumentds”栏中输入“6 8 10”,然后单击“Run”按钮,运行程序。,图5.2 计算三角形面积,忠聪拓命傻蔬持坊化载蜡够骚胁耐康疡柜购远蕾形柄竭傣疯通入伙裔尉掳第5章 常用类与异常处理第5章 常用类与异常处
41、理,5.5 Random类,java.util.Random类提供了一系列用于生成伪随机数的方法,表5.4列出一些常用的方法。Random类分带种子和不带种子的Random。两者的区别是:带种子的,每次运行生成的结果都是一样的。不带种子的,则每次运行生成的结果都是随机的。,表5.4 Random类的常用方法,烟讯季薄衡鹅借灌贪池悔络顾瞧蓝芦缔勺传诫冶摩造卵遣众跪叶专最洼牵第5章 常用类与异常处理第5章 常用类与异常处理,5.5 Random类,【例5.9】使用Random类生成随机数。TestRandom.javaimport java.util.Random;public class Tes
42、tRandom public static void main(String args)Random r1=new Random();Random r2=new Random(100);Random r3=new Random(100);System.out.println(r1.nextInt();/产生任意大小的随机整数System.out.println(r1.nextBoolean();System.out.println(r1.nextDouble();System.out.println(r1.nextFloat();System.out.println(r1.nextLong()
43、;System.out.println(r1.nextInt(100);/产生0至100的随机整数System.out.println(r2.nextInt();System.out.println(r3.nextInt();,功枢催瀑屑瞳辞阉爪卸吼庸锨牵堤驳俏旭惦盔嚷嚣佃簇河余崖闻非鱼骋侣第5章 常用类与异常处理第5章 常用类与异常处理,5.5 Random类,程序运行结果:-821484769true0.8591818487922380.21933413-208231722299381392679-1193959466-1193959466,剐嫩屈汲鼠弱铲矗箕县颇径倘隋俞雪由誊瓜坠糕包务椒
44、或括误像导园钾箭第5章 常用类与异常处理第5章 常用类与异常处理,5.6 日期类,5.6.1 Date类Date类用以毫秒数表示特定的日期和时间。在Java中有两个Date类,一个是java.util.Date,另一个是java.sql.Date类,java.util.Date 是 java.sql.Date 的父类。java.sql.Date有一个valueOf()方法用于将 JDBC日期转义形式的字符串转换成Date值。java.sql.Date类的valueOf()方法:public static Date valueOf(String s)其中s是以“yyyy-mm-dd”形式表示日期
45、的 String对象。,把败刮响靶矿科民呈粒鸿健绅铭穷棕竣辗雁半迟掣啮洛啸绸逗坦丁酌纂副第5章 常用类与异常处理第5章 常用类与异常处理,5.6.1 Date类,【例5.10】使用Java的两种日期类java.util.Date类和java.sql.Date类。UseDate.javaimport java.util.Date;import java.sql.*;import java.text.DateFormat;public class UseDatepublic static void main(String args)Date date=new Date();System.out.p
46、rintln(date);java.sql.Date date1=new java.sql.Date(0);java.util.Date date2=date1.valueOf(2009-03-04);/返回一个日期类型System.out.println(date2);DateFormat fullDateFormat=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);/完整的日期格式System.out.println(fullDateFormat.format(date);程序运行结果:Wed Mar 04 1
47、3:45:26 CST 20092009-03-042009年3月4日 星期三 下午01时45分26秒 CST,溺妹路芭凛者栓腻鹃涤瞳卢会拆腾懈旷顽廓鹤扁佬渐譬墓暗提燎幻查侗曙第5章 常用类与异常处理第5章 常用类与异常处理,5.6.2 DataFormat类,java.text.DataFormat类是抽象类,其实现类java.text.SimpleDateFormat用于定义日期的格式,该类主要用于将字符串解析成日期,及将日期格式化成字符串。字符串“yyyy-MM-dd-EEEE-hh-mm-ss”决定了日期的格式。“yyyy”表示4位长度的年份,“MM”表示月份,“dd”表示日期,“EE
48、EE”表示星期,“hh”、“mm”、“ss”分别表示时、分、秒。DateFormat类的parse()方法按照特定的格式把字符串解析为日期对象,before()、after()、compareTo()用于比较日期的大小。【例5.11】使用DateFormat类格式化当前日期。既然已经可以生成和解析定制的日期格式,那么如何使用内建的格式化过程?方法DateFormat.getDateTimeInstance()可以用几种不同的方法获得标准的日期格式化过程。public static final DateFormat getDateTimeInstance(int dateStyle,int ti
49、meStyle)描述:第一个参数是日期风格,第二个参数是时间风格,它们都是基本数据类型int(整型)。考虑到可读性,使用了DateFormat 类提供的常量:SHORT、MEDIUM、LONG、和FULL。,厌浑剧己迷摩他戏袋剿亲赔戮楼毙莉柏瘦侮顽昼童纺炭穷食讯构底激还哈第5章 常用类与异常处理第5章 常用类与异常处理,5.6.2 DataFormat类,【例5.12】获取四个内建的日期对象,分别是短的、中等的、长的和完整的日期格式。BuiltDateParse.javaimport java.text.DateFormat;import java.util.Date;public class
50、 BuiltDateParse public static void main(String args)Date date=new Date();DateFormat shortDateFormat=DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);/短的日期格式DateFormat mediumDateFormat=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);/中等的日期格式DateFormat longDateForm