Java面向?qū)ο蟪绦蛟O(shè)計第9章常用實(shí)用類_第1頁
Java面向?qū)ο蟪绦蛟O(shè)計第9章常用實(shí)用類_第2頁
Java面向?qū)ο蟪绦蛟O(shè)計第9章常用實(shí)用類_第3頁
Java面向?qū)ο蟪绦蛟O(shè)計第9章常用實(shí)用類_第4頁
Java面向?qū)ο蟪绦蛟O(shè)計第9章常用實(shí)用類_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1java面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計 第第9章章常用實(shí)用類2主要內(nèi)容主要內(nèi)容string類類stringbuffer類類stringtokenizer類類date類類clendar類類math與與biginteger類類decimalformat類類pattern與與match類類難點(diǎn)難點(diǎn)pattern與與match類類導(dǎo)讀導(dǎo)讀39.1 stringstring類類 java.langjava.lang包中的包中的stringstring類來創(chuàng)建一個字符類來創(chuàng)建一個字符串變量,串變量,字符串變量是對象字符串變量是對象。 49.1.1 構(gòu)造字符串對象構(gòu)造字符串對象 1 1常量對象:常量對象

2、:字符串常量對象是用雙引號括起的字符串常量對象是用雙引號括起的字符序列,例如:字符序列,例如: 你好你好 、12.9712.97、 boyboy等。等。 2 2字符串對象字符串對象 聲明:聲明:string s; stringstring類較常用構(gòu)造方法類較常用構(gòu)造方法: : string(s),string (char a),string(char a,int startindex,int count) string s1=“,mmn”;string s2=new string(“abd”);char c=a,m,h;string s3=new string(c); string s4=ne

3、w string(c,0,2);5 3引用字符串常量對象引用字符串常量對象 string s1 = how are you; string s2 = how are you;69.1.2 string string 類的常用方法類的常用方法 1 1public public intint length(): length():獲取一個字符串的長度獲取一個字符串的長度 2 2public public booleanboolean equals(stringequals(string s):s):比較當(dāng)前字符串對象的實(shí)體是否與參數(shù)比較當(dāng)前字符串對象的實(shí)體是否與參數(shù)s s指定的字指定的字符串的實(shí)體

4、相同符串的實(shí)體相同 例題例題9-19-1public class example9_1 public static void main(string args) string s1,s2; s1=new string(we are students); s2=new string(we are students); system.out.println(s1.equals(s2); /輸出結(jié)果是:輸出結(jié)果是:true system.out.println(s1=s2); /輸出結(jié)果是:輸出結(jié)果是:false string s3,s4; s3=how are you; s4=how are yo

5、u; system.out.println(s3.equals(s4); /輸出結(jié)果是:輸出結(jié)果是:true system.out.println(s3=s4); /輸出結(jié)果是:輸出結(jié)果是:true 7 3public boolean startswith(string s) public boolean endswith(string s)方法方法: 判斷當(dāng)前字符串對象的前綴(后綴)是否是參數(shù)判斷當(dāng)前字符串對象的前綴(后綴)是否是參數(shù)s指定的字符串指定的字符串 4public boolean regionmatches(int firststart,string other,int orth

6、erstart,int length) : 從當(dāng)前字符串參數(shù)從當(dāng)前字符串參數(shù)firststart指定的位置開始處,指定的位置開始處,取長度為取長度為length的一個子串,并將這個子串和參數(shù)的一個子串,并將這個子串和參數(shù)other指定的一個子串進(jìn)行比較指定的一個子串進(jìn)行比較 。 其重載方法:其重載方法:public boolean regionmatches( boolean b, int firststart,string other,int ortherstart,int length) 參數(shù)參數(shù)b決定是否區(qū)分大小寫,為決定是否區(qū)分大小寫,為true忽略忽略 例題例題9-28 public

7、 class example9_2 public static void main(string args) int number=0; string s=student;entropy;engage,english,client; for(int k=0;ks.length();k+) if(s.regionmatches(k,en,0,2) number+; system.out.println(“number=”+number); /輸出結(jié)果為 number=5 9 5public int compareto(string s): 按字典序與參數(shù)按字典序與參數(shù)s指定的字符串比較指定的字符

8、串比較大小大小 其相關(guān)方法:其相關(guān)方法: public int comparetoignorecase(string s) 例題例題9-3 10 /sortstring.java 起泡排序 public class sortstring public static void sort(string a) for(int i=0;ia.length-1;i+) for(int j=i+1;ja.length;j+) if(pareto(ai)int 15 可以使用可以使用string 類的類方法類的類方法 public static string valueof(int n) 等將形如等將形如1

9、23、1232.98等數(shù)值轉(zhuǎn)化為等數(shù)值轉(zhuǎn)化為字字符串。符串。 可以使用可以使用long類中的類方法類中的類方法 public static string tobinarystring(long i) 等得到整數(shù)的等得到整數(shù)的各種進(jìn)制各種進(jìn)制的字符串表示的字符串表示。2) int - string16main方法中的參數(shù)方法中的參數(shù)public static void main(string args)主方法。其中參主方法。其中參數(shù)是字符串?dāng)?shù)組數(shù)是字符串?dāng)?shù)組args,這個數(shù)組的元素這個數(shù)組的元素args0, args1 argsn的值都是字符串。的值都是字符串。args就是就是命令行命令行的參數(shù)

10、。的參數(shù)。在在java解釋器解釋用戶的字節(jié)碼文件時,可解釋器解釋用戶的字節(jié)碼文件時,可以包括需要傳給以包括需要傳給main方法的參數(shù)。一般形式為:方法的參數(shù)。一般形式為: java 類文件名類文件名 字符串字符串1 字符串字符串2 字符串字符串n 其中,類文件名和各字符串間用其中,類文件名和各字符串間用空格分隔。空格分隔。17補(bǔ)充例子:補(bǔ)充例子: public class c7_7 public static void main(string args) for(int i=0;iargs.length;i+) system.out.println(argsi); 18 運(yùn)行時輸入運(yùn)行時輸入“

11、java c7_7 hello world lets java!”命令,命令,則有如下的結(jié)果:則有如下的結(jié)果:helloworldlets java!19 public class example9_5 public static void main(string args) double aver=0,sum=0,item=0; boolean computable=true; for(string s:args) try item=double.parsedouble(s); sum=sum+item; catch(numberformatexception e) system.out.p

12、rintln(您鍵入了非數(shù)字字符:+e); computable=false; 例例9.520 if(computable) aver=sum/args.length; for(string s:args) system.out.print(s+ ); system.out.println(的平均數(shù):+aver); int number=8642; string binarystring=long.tobinarystring(number); system.out.println(number+的二進(jìn)制表示:+binarystring); system.out.println(number+

13、的十六進(jìn)制表示:+long.tostring(number,16); 219.1.4 對象的字符串表示對象的字符串表示 所有類默認(rèn)的父類是所有類默認(rèn)的父類是objectobject類,類, objectobject類類有一個方法:有一個方法: public string public string tostringtostring()() 一個對象通過調(diào)用該方法可以獲得該對象的字符串表示。一個對象通過調(diào)用該方法可以獲得該對象的字符串表示。一個對象調(diào)用一個對象調(diào)用tostringtostring()()方法返回的字符串的一般形式為:方法返回的字符串的一般形式為:創(chuàng)建對象的類的名字創(chuàng)建對象的類的名

14、字 對象的引用的字符串表示對象的引用的字符串表示實(shí)際需要中子類重寫實(shí)際需要中子類重寫tostringtostring方法方法如如java.util.datejava.util.date 類已重寫,輸出需要的時間格式類已重寫,輸出需要的時間格式用戶在自定義類中也建議改寫,用以輸出對象的成員變量用戶在自定義類中也建議改寫,用以輸出對象的成員變量例題例題9-69-6 22 /student .java public class student string name; public student() public student(string s) name=s; public string to

15、string() string oldstr=super.tostring(); /建議去掉 return oldstr+ni am a student,my name is +name; 23 import java.util.date; public class example9_6 public static void main(string args) date date=new date(); system.out.println( date.tostring(); student zhang=new student(zhang san); system.out.println( z

16、hang.tostring(); system.out.println(new student(li xiao).tostring(); 249.1.5 字符串與字符、字節(jié)數(shù)組字符串與字符、字節(jié)數(shù)組 1字符串與字符數(shù)組字符串與字符數(shù)組 string string 類的構(gòu)造方法:類的構(gòu)造方法: string(charstring(char)和和 string(charstring(char,intint offsetoffset,intint length) length) 分別用字符數(shù)組中的全部字符和部分字符創(chuàng)建字符串對象分別用字符數(shù)組中的全部字符和部分字符創(chuàng)建字符串對象 string str

17、ing類提供了將字符串存放到數(shù)組中的方法:類提供了將字符串存放到數(shù)組中的方法:public void public void getchars(intgetchars(int start,intstart,int end,charend,char c,intc,int offset )offset ) 將字符串中的全部字符存放在一個字符數(shù)組中的方法:將字符串中的全部字符存放在一個字符數(shù)組中的方法:public char public char tochararraytochararray() () 例題例題9-79-725 public class example9_7 public stat

18、ic void main(string args) char a,b,c; string s=巴西足球隊擊敗德國足球隊巴西足球隊擊敗德國足球隊; a=new char2; s.getchars(5,7,a,0); system.out.println(a); b=new chars.length(); s.getchars(7,12,b,0); s.getchars(5,7,b,5); s.getchars(0,5,b,7); system.out.println(b); c=大家好,很高興認(rèn)識大家大家好,很高興認(rèn)識大家.tochararray(); for(char ch:c) system

19、.out.print(ch); 26 2字符串與字節(jié)數(shù)組字符串與字節(jié)數(shù)組 string(byte)用指定的字節(jié)數(shù)組構(gòu)造一個字用指定的字節(jié)數(shù)組構(gòu)造一個字符串對象。符串對象。 string(byte,int offset,int length) 用指定的字節(jié)數(shù)組的一部分,即從數(shù)組起始位置用指定的字節(jié)數(shù)組的一部分,即從數(shù)組起始位置offset開始取開始取length個字節(jié)構(gòu)造一個字符串對象。個字節(jié)構(gòu)造一個字符串對象。 public byte getbytes() 使用平臺默認(rèn)的字符編碼,將當(dāng)前字符串轉(zhuǎn)化使用平臺默認(rèn)的字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。為一個字節(jié)數(shù)組。 public byte

20、getbytes(string charsetname) 使用參數(shù)指定字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一使用參數(shù)指定字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。個字節(jié)數(shù)組。 例題例題9-827 public class example9_8 public static void main(string args) byte d=abc你我他.getbytes(); system.out.println(數(shù)組d的長度是(一個漢字占兩個字節(jié)):+d.length); string s=new string(d,3,2); /輸出:你 system.out.println(s); s=new string

21、(d,7,2); system.out.println(s); /輸出:他 289.1.6 正則表達(dá)式及字符串的替換與分解正則表達(dá)式及字符串的替換與分解 1 1正則表達(dá)式正則表達(dá)式 一個正則表達(dá)式是含有一些具有一個正則表達(dá)式是含有一些具有特殊意義字符的特殊意義字符的字符串,這字符串,這些特殊字符稱作些特殊字符稱作正則表達(dá)式中的元字符正則表達(dá)式中的元字符。 比如,比如,“dhellodhello”中的中的d d就是有特殊意義的元字符,代就是有特殊意義的元字符,代表表0 0到到9 9中的任何一個。中的任何一個。方法方法: : public public booleanboolean matches

22、(stringmatches(string regexregex) ) 可以判斷當(dāng)前字符可以判斷當(dāng)前字符串對象是否和參數(shù)串對象是否和參數(shù)regexregex指定的正則表達(dá)式匹配。指定的正則表達(dá)式匹配。 參考表參考表9.19.1,表,表9.2 9.2 。 29 在正則表達(dá)式可以用方括號括起來若干個字符表示一個元字符,該元字符代表括號中任意一個字符。 s=“159abc”,則 “1abc”, ”5abc”, “9abc”都與s匹配其他見教材: p188 表9.2限定符 s=“w4”, 則 “abcd” “girl” “moon”等都與s 匹配其中: w 表示任意字符 4表示前面的字符恰為4個30

23、2字符串的替換字符串的替換 方法:方法: public string public string replaceall(stringreplaceall(string regex,stringregex,string replacement)replacement) 返回一個字符串,該字符串是當(dāng)前字符串中所有和返回一個字符串,該字符串是當(dāng)前字符串中所有和參數(shù)參數(shù)regexregex指定的正則表達(dá)式匹配的子字符串被參數(shù)指定的正則表達(dá)式匹配的子字符串被參數(shù)replacementreplacement指定的字符串替換后的字符串。指定的字符串替換后的字符串。不影響原不影響原字符串字符串例如:例如:st

24、ring string result=“result=“1212hellohello567567”.”.replaceallreplaceall(“d+”,“(“d+”,“你你好好”);”);那么那么resultresult就是:就是:“你好你好hellohello你好你好” ” “d“d+ ” + ” 表示任意一個數(shù)字出現(xiàn)一次或表示任意一個數(shù)字出現(xiàn)一次或 多次多次例題例題9-99-9: 判斷一個字符串是否全有數(shù)字組成,并讓含有非數(shù)字判斷一個字符串是否全有數(shù)字組成,并讓含有非數(shù)字字符的字符串返回一個字符串(去掉非數(shù)字字符)字符的字符串返回一個字符串(去掉非數(shù)字字符)31public class

25、 example9_9 public static void main (string args ) string regex=1-90-9*.?0-9* ; string str1=12r34a5; string str2=123.45908; if(str1.matches(regex) system.out.println(str1+可以表示數(shù)字可以表示數(shù)字); else system.out.println(str1+不可以表示數(shù)字不可以表示數(shù)字); string result=str1.replaceall(“d+,); system.out.println(剔除剔除+str1+的非

26、數(shù)字字符得到的字符的非數(shù)字字符得到的字符串是:串是:); system.out.println(result); 32 if(str2.matches(regex) system.out.println(str2+可以表示數(shù)字); else system.out.println(str2+不可以表示數(shù)字); string result=str1.replaceall(d+,); system.out.println(剔除+str2+的非數(shù)字字符得到的字符串是:); system.out.println(result); 33 3字符串的分解字符串的分解 public string public

27、 string split(stringsplit(string regexregex) ) 使用參數(shù)指定的正則表達(dá)式使用參數(shù)指定的正則表達(dá)式regexregex做為分隔做為分隔標(biāo)記分解出其中的單詞,并將分解出的單詞存標(biāo)記分解出其中的單詞,并將分解出的單詞存放在字符串?dāng)?shù)組中。放在字符串?dāng)?shù)組中。例如,對于字符串:例如,對于字符串: strstr=“1931=“1931年年0909月月1818日晚,日本發(fā)動侵華戰(zhàn)爭,日晚,日本發(fā)動侵華戰(zhàn)爭,請記住這個日子!請記住這個日子!”; ”; 使用正則表達(dá)式:string string regexregex=d+; =d+; 做為分隔標(biāo)記分解出str中的單詞

28、: string string digitworddigitword=str.split(regexstr.split(regex); ); 那么,digitword0、digitword1和digitword2就分別是1931、09和18。 例題例題9-1034 import java.util.scanner; public class example9_10 public static void main (string args ) system.out.println(一行文本一行文本:); scanner reader=new scanner(system.in); string

29、str= reader.nextline(); /空格字符、數(shù)字和符號空格字符、數(shù)字和符號(!#$%&()*+,-./:;?_|)組成的正則表達(dá)式組成的正則表達(dá)式: string regex=sdppunct+; string words=str.split(regex); for(int i=0;iwords.length;i+) int m=i+1; system.out.println(單詞單詞+m+:+wordsi); 359.2 stringbufferstringbuffer類類 (變量串)(變量串) 9.2.1 stringbufferstringbuffer對象的創(chuàng)建對

30、象的創(chuàng)建 string s = new string(我喜歡學(xué)習(xí)我喜歡學(xué)習(xí)); stringbufferstringbuffer buffer = new buffer = new stringbufferstringbuffer(“(“我喜歡學(xué)習(xí)我喜歡學(xué)習(xí)”);”); buffer.appendbuffer.append(數(shù)學(xué)數(shù)學(xué));); 36 stringbuffer類有三個構(gòu)造方法類有三個構(gòu)造方法: 1stringbuffer(): 初始容量初始容量16個字符,多時個字符,多時自動增加自動增加 2stringbuffer(int size):初始容量:初始容量size個字符,個字符,多時

31、自動增加多時自動增加 3stringbuffer(string s) :初始容量:初始容量s個字符個字符再加再加16個字符,多時自動增加個字符,多時自動增加方法:方法:length():獲取字符序列的長度:獲取字符序列的長度capacity(): 實(shí)際容量實(shí)際容量 例題例題9-1137 public class example9_11 public static void main(string args) stringbuffer str=new stringbuffer(); str.append(大家好大家好); system.out.println(str:+str); system.

32、out.println(length:+str.length(); system.out.println(capacity:+str.capacity(); str.append(我們大家都很愿意學(xué)習(xí)我們大家都很愿意學(xué)習(xí)java語言語言); system.out.println(str:+str); system.out.println(length:+str.length(); system.out.println(capacity:+str.capacity(); stringbuffer sb=new stringbuffer(hello); system.out.println(len

33、gth:+sb.length(); system.out.println(capacity:+sb.capacity(); 389.2.2 stringbufferstringbuffer類的常用方法類的常用方法 1 1stringbufferstringbuffer append(stringappend(string s): s):將一個字符串對象追加到當(dāng)前將一個字符串對象追加到當(dāng)前stringbufferstringbuffer對象中對象中 stringbufferstringbuffer append(intappend(int n) n):將一個將一個intint型數(shù)據(jù)轉(zhuǎn)化為字符串對

34、象后再追型數(shù)據(jù)轉(zhuǎn)化為字符串對象后再追加到當(dāng)前加到當(dāng)前stringbufferstringbuffer對象中對象中 stringbufferstringbuffer append(objectappend(object o) o):將一個將一個objectobject對象的字符串表示追加到對象的字符串表示追加到當(dāng)前當(dāng)前stringbufferstringbuffer對象中對象中 類似的方法還有:類似的方法還有: stringbufferstringbuffer append(longappend(long n), n), stringbufferstringbuffer append(boole

35、anappend(boolean n), n), stringbufferstringbuffer append(floatappend(float n), n), stringbufferstringbuffer append(doubleappend(double n), n), stringbufferstringbuffer append(charappend(char n) n)392public chat charat(int n ):得到參數(shù)得到參數(shù)n指定的位置上的單個字符指定的位置上的單個字符 public void setcharat(int n ,char ch):將當(dāng)前將

36、當(dāng)前stringbuffer對象實(shí)對象實(shí)體中的字符串位置體中的字符串位置n處的字符用參數(shù)處的字符用參數(shù)ch指定的字符替換指定的字符替換3stringbuffer insert(int index, string str) :將參數(shù)將參數(shù)str指定的字符指定的字符串插入到參數(shù)串插入到參數(shù)index指定的位置指定的位置 4public stringbuffer reverse() :將該對象實(shí)體中的字符翻轉(zhuǎn)將該對象實(shí)體中的字符翻轉(zhuǎn)5stringbuffer delete(int startindex, int endindex) :從當(dāng)前從當(dāng)前stringbuffer對象實(shí)體中的字符串中刪除一個子

37、字符串對象實(shí)體中的字符串中刪除一個子字符串 其相關(guān)方法:其相關(guān)方法: deletecharat(int index) 刪除當(dāng)前刪除當(dāng)前stringbuffer對對象實(shí)體的字符串中象實(shí)體的字符串中index位置處的一個字符。位置處的一個字符。6. stringbuffer replace( int startindex ,int endindex, string str) :將當(dāng)前將當(dāng)前stringbuffer對象實(shí)體中的字符串的一個子字符串用參數(shù)對象實(shí)體中的字符串的一個子字符串用參數(shù)str指定的字符串替換指定的字符串替換 例題例題9-1240 public class example9_12

38、public static void main(string args) stringbuffer str= new stringbuffer(he like java); str.setcharat(0 ,w); str.setcharat(1 ,e); system.out.println(str); str.insert(2, all); system.out.println(str); int index=str.indexof(java); str.replace(index,str.length(),apple); system.out.println(str); 419. 3 s

39、tringtokenizer類類 stringtokenizerstringtokenizer類類在在java.utiljava.util包中,有兩個常用的構(gòu)造方包中,有兩個常用的構(gòu)造方法:法:stringtokenizerstringtokenizer(stringstring s s):):為字符串為字符串s s構(gòu)造一個分析器。構(gòu)造一個分析器。使用默認(rèn)的分隔標(biāo)記,即空格符(若干個空格被看做一個空格)、使用默認(rèn)的分隔標(biāo)記,即空格符(若干個空格被看做一個空格)、換行符、回車符、換行符、回車符、tabtab符、進(jìn)紙符。符、進(jìn)紙符。 stringtokenizer(stringstringtoke

40、nizer(string s, string s, string delimdelim) ):為字符串為字符串s s構(gòu)造一個分析器。參數(shù)構(gòu)造一個分析器。參數(shù)dilimdilim中的字符被作為分隔標(biāo)記中的字符被作為分隔標(biāo)記 。 42 stringtokenizerstringtokenizer對象稱作一個字符串分析器可以對象稱作一個字符串分析器可以使用下列方法:使用下列方法: nexttokennexttoken()():逐個獲取字符串中的語言符號:逐個獲取字符串中的語言符號(單詞),字符串分析器中的負(fù)責(zé)計數(shù)的變量的值就(單詞),字符串分析器中的負(fù)責(zé)計數(shù)的變量的值就自動減一自動減一 。 hasm

41、oretokenshasmoretokens()():只要字符串中還有語言符號,即:只要字符串中還有語言符號,即計數(shù)變量的值大于計數(shù)變量的值大于0 0,該方法就返回,該方法就返回truetrue,否則返回否則返回falsefalse。 counttokenscounttokens()():得到分析器中計數(shù)變量的值。得到分析器中計數(shù)變量的值。 例題例題9-139-13:統(tǒng)計單詞:統(tǒng)計單詞43 import java.util.*; public class example9_13 public static void main(string args) string s=we are stud,

42、ents; stringtokenizer fenxi=new stringtokenizer(s, ,); int number=fenxi.counttokens(); while(fenxi.hasmoretokens() string str=fenxi.nexttoken(); system.out.println(str); system.out.println(還剩+fenxi.counttokens()+個單詞); system.out.println(s共有單詞:+number+個); 449.4 datedate類類 9.4.1 構(gòu)造構(gòu)造datedate對象對象 dated

43、ate類在類在java.utiljava.util包中。使用包中。使用datedate類的無參數(shù)構(gòu)造方法創(chuàng)類的無參數(shù)構(gòu)造方法創(chuàng)建的對象可以獲取本地當(dāng)前時間。建的對象可以獲取本地當(dāng)前時間。 計算機(jī)參照時間:計算機(jī)參照時間: 1970.1.1 01970.1.1 0時時 ,格林威治時間,格林威治時間datedate的帶參數(shù)的構(gòu)造方法:的帶參數(shù)的構(gòu)造方法: date(longdate(long time) time) : time time 毫秒毫秒例:例: date date1=new date(1000), date date1=new date(1000), 若北京時間,表示若北京時間,表示

44、1970.1.1 81970.1.1 8時時0000分分0101秒秒 date2=new date(-1000); date2=new date(-1000); 若北京時間,表示若北京時間,表示 1970.1.1 71970.1.1 7時時5959分分5959秒秒 45 systemsystem類中類中: : public static long public static long currnttimesmilliscurrnttimesmillis():(): 若北京時區(qū),獲取自若北京時區(qū),獲取自1970.1.1 81970.1.1 8時時0000分分0000秒秒 到目前到目前的毫秒數(shù)的毫

45、秒數(shù) datedate對象默認(rèn)時間格式:對象默認(rèn)時間格式: 星期星期 月月 日日 小時小時 分分 秒秒 年年如如: : tue aug 04 08:59:32 cst 2009 tue aug 04 08:59:32 cst 2009 469.4.2 日期格式化日期格式化 使用使用java.utiljava.util包中的包中的dateformatdateformat的子類的子類simpledateformatsimpledateformat來來實(shí)現(xiàn)日期的格式化(按照自己的習(xí)慣)。實(shí)現(xiàn)日期的格式化(按照自己的習(xí)慣)。simpledateformatsimpledateformat有一個常用構(gòu)造

46、方法:有一個常用構(gòu)造方法: public public simpledateformat(stringsimpledateformat(string pattern); pattern);該構(gòu)造方法可以用該構(gòu)造方法可以用參數(shù)參數(shù)patternpattern指定的格式創(chuàng)建一個對象,該對象指定的格式創(chuàng)建一個對象,該對象調(diào)用:調(diào)用:public string public string format(dateformat(date date) date) 方法格式化時間對象方法格式化時間對象datedate。注:注:參數(shù)參數(shù) patternpattern中的日期格式符即被替換結(jié)果見教材中的日期格式符

47、即被替換結(jié)果見教材p196p196其中的普通其中的普通asciiascii字符,必須用單引號括起來,字符,必須用單引號括起來,ruru patter=“ patter=“time:yyyy-mm-ddtime:yyyy-mm-dd” 例題例題9-149-1447 import java.util.date; import java.text.simpledateformat; public class example9_14 public static void main(string args) date nowtime=new date(); system.out.println(現(xiàn)在的時

48、間現(xiàn)在的時間:+nowtime); simpledateformat matter1= new simpledateformat( now time: y年年m月月d日日h時時m分分s秒秒); string timepattern=matter1.format(nowtime); system.out.println(timepattern); 48 simpledateformat matter2= new simpledateformat(g yyyy年年mmmd日日e hh時時mm分分ss秒秒z); timepattern=matter2.format(nowtime); system.

49、out.println(timepattern); long time=system.currenttimemillis(); system.out.println(從從+matter2.format (new date(6123210) + 至現(xiàn)在是:至現(xiàn)在是:n+time+毫秒毫秒); system.out.println(現(xiàn)在的時間現(xiàn)在的時間:+new date(time); 499. 5 calendar類類 1 1 calendarcalendar類類在在java.utiljava.util包中。使用包中。使用calendarcalendar類的類的staticstatic方法方法

50、getinstancegetinstance()()可以初始化一個日歷對象,如:可以初始化一個日歷對象,如:calendar calendar calendarcalendar= = calendar.getinstancecalendar.getinstance();();2 calendar2 calendar對象可以調(diào)用方法:對象可以調(diào)用方法:public final void public final void set(intset(int year,intyear,int month,intmonth,int date) date)public final void public f

51、inal void set(intset(int year,intyear,int month,intmonth,int date,intdate,int hour,inthour,int minute) minute)public final void public final void set(intset(int year,intyear,int month, month, intint date, date, intint hour, hour, intint minute,intminute,int second) second)將日歷翻到任何一個時間將日歷翻到任何一個時間 50 3

52、 calendar3 calendar對象常用方法對象常用方法 public public intint get(intget(int field) field) :可以獲取有關(guān)年份、可以獲取有關(guān)年份、月份、小時、星期等信息月份、小時、星期等信息 參數(shù)參數(shù) fieldfield的值為的值為calendarcalendar中靜態(tài)常量,如:中靜態(tài)常量,如: calendar.monthcalendar.month : : 返回整數(shù),若為返回整數(shù),若為0 0,表示,表示1 1月月 calendar.yearcalendar.year calendar.daycalendar.day calendar

53、.day_of_weekcalendar.day_of_week 返回返回1 1表示星期日,表示星期日,2 2表示星期表示星期一,一,.7.7表示星期六表示星期六 public long public long gettimeinmillisgettimeinmillis() () :可以將時間表可以將時間表示為毫秒。示為毫秒。 例題例題9-15:1945年到年到1931年天數(shù)年天數(shù)51import java.util.*;import static java.util.calendar.*; /靜態(tài)導(dǎo)入calendar類的靜態(tài)常量public class example9_15 public

54、 static void main(string args) calendar calendar=calendar.getinstance(); calendar.settime(new date(); string 年=string.valueof(calendar.get(year), 月=string.valueof(calendar.get(month)+1), 日=string.valueof(calendar.get(day_of_month), 星期=string.valueof(calendar.get(day_of_week)-1); int hour=calendar.ge

55、t(hour_of_day), minute=calendar.get(minute), second=calendar.get(second); system.out.print(現(xiàn)在的時間是:); system.out.print(+年+年+月+月+日+日 + 星期+星期); system.out.println( +hour+時+minute+分+second+秒); 52 int year=1945,month=8,day=15; calendar.set(year,month-1,day); /將日歷翻到將日歷翻到1945年年8月月15日日,注意注意7表示八月表示八月 system.

56、out.print(year+年年+month+月月+day+日與日與); long time2=calendar.gettimeinmillis(); year=1931; month=9; day=18; calendar.set(year,month-1,day); /將日歷翻到將日歷翻到1931年年9月月18日日 system.out.print(year+年年+month+月月+day+日日); long time1=calendar.gettimeinmillis(); long 相隔天數(shù)相隔天數(shù)=(time2-time1)/(1000*60*60*24); system.out.

57、println(相隔相隔+相隔天數(shù)相隔天數(shù)+天天); 53例題例題9-16: 2012年年8月的日歷月的日歷import java.util.calendar;public class calendarbean string day; int year=2008,month=0; public void setyear(int year) this.year=year; public void setmonth(int month) this.month=month; public string getcalendar() string a=new string42; calendar 日歷日

58、歷=calendar.getinstance(); 日歷日歷.set(year,month-1,1); int 星期幾星期幾=日歷日歷.get(calendar.day_of_week)-1; int day=0; 54if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) day=31; if(month=4|month=6|month=9|month=11) day=30; if(month=2) if(year%4=0)&(year%100!=0)|(year%400=0) day=29; else day=28

59、; for(int i=0;i星期幾星期幾;i+) ai= ; for(int i=星期幾星期幾,n=1;i星期幾星期幾+day;i+) ai=string.valueof(n) ; n+; for(int i=星期幾星期幾+day;ia.length;i+) ai= ; return a; 55 public class example9_16 public static void main(string args) calendarbean cb=new calendarbean(); cb.setyear(2012); cb.setmonth(8); string a= cb.getca

60、lendar(); /返回存放月中號碼的一維數(shù)組 char str=日一二三四五六.tochararray(); for(char c:str) system.out.printf(%3c,c); for(int i=0;ia.length;i+) /輸出數(shù)組a if(i%7=0) system.out.println(); /換行 system.out.printf(%4s,ai); 569. 6 math和和biginteger類類 9.6.1 mathmath類類 math類在類在java.lang包中。包中。math類包含許多用來進(jìn)行科學(xué)計算類包含許多用來進(jìn)行科學(xué)計算的類方法,這些方法可以直接通過類名

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論