版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JavaJava面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計 第第2 2版版 第第9 9章章配合第2版 例子源代碼一起使用Power point 制造:耿祥義 張躍平常用實(shí)用類導(dǎo)讀導(dǎo)讀9.1 String類類 java.lang包中的包中的String類來創(chuàng)建一個字符串變量,字符串變量是對象。類來創(chuàng)建一個字符串變量,字符串變量是對象。 9.1.1 構(gòu)造字符串對象構(gòu)造字符串對象 1 1常量對象:字符串常量對象是用雙引號括起的常量對象:字符串常量對象是用雙引號括起的字符序列,例如:字符序列,例如: 你好你好 、12.9712.97、boyboy等。等。 2 2字符串對象字符串對象 聲明:聲明:String s
2、; String s; String String類較常用構(gòu)造方法類較常用構(gòu)造方法: : String(s) String(s),String (char a)String (char a),String(char String(char a,int startIndex,int count)a,int startIndex,int count) 3 3引用字符串常量對象引用字符串常量對象 string s1 = how are you; string s1 = how are you; 9.1.2 String 類的常用方法類的常用方法 1 1public int length():publ
3、ic int length():獲取一個字符串的長度獲取一個字符串的長度 2 2public boolean equals(String s):public boolean equals(String s):比較當(dāng)前字符串對象的實(shí)體是否與參數(shù)比較當(dāng)前字符串對象的實(shí)體是否與參數(shù)s s指定的字符串的實(shí)體相同指定的字符串的實(shí)體相同 例題例題9-9-1 13 3public boolean startsWith(String s)public boolean startsWith(String s) public boolean endsWith(String s) public boolean en
4、dsWith(String s)方法方法: :判斷當(dāng)前字符串對象的前綴后判斷當(dāng)前字符串對象的前綴后綴是否是參數(shù)綴是否是參數(shù)s s指定的字符串指定的字符串 4 4public boolean regionMatches(int firstStart,String other,int public boolean regionMatches(int firstStart,String other,int ortherStart,int length) :ortherStart,int length) :從當(dāng)前字符串參數(shù)從當(dāng)前字符串參數(shù)firstStartfirstStart指定的位置開始處,指定的
5、位置開始處,取長度為取長度為lengthlength的一個子串,并將這個子串和參數(shù)的一個子串,并將這個子串和參數(shù)otherother指定的一個子串進(jìn)行比指定的一個子串進(jìn)行比較較 。 例題例題9-2 9-2 其重載方法:其重載方法:public boolean regionMatches(boolean b,int firstStart,String public boolean regionMatches(boolean b,int firstStart,String other,int ortherStart,int length) other,int ortherStart,int len
6、gth) 5 5public int compareTo(String s):public int compareTo(String s):按字典序與參數(shù)按字典序與參數(shù)s s指定的字符串比較大小指定的字符串比較大小 其相關(guān)方法:其相關(guān)方法: public int compareToIgnoreCase(String s) public int compareToIgnoreCase(String s) 例題例題9-3 9-3 6.public boolean contains(String s):6.public boolean contains(String s):判斷當(dāng)前字符串對象是否含有
7、參數(shù)指定判斷當(dāng)前字符串對象是否含有參數(shù)指定的字符串的字符串s s 7.public int indexOf (String s):7.public int indexOf (String s):從當(dāng)前字符串的頭開始檢索字符串從當(dāng)前字符串的頭開始檢索字符串s s,并返,并返回首次出現(xiàn)回首次出現(xiàn)s s的位置的位置, ,其相關(guān)方法:其相關(guān)方法: indexOf(String s ,int startpoint), lastIndexOf (String s) indexOf(String s ,int startpoint), lastIndexOf (String s) 8 8public Str
8、ing substring(int startpoint):public String substring(int startpoint):獲得一個當(dāng)前字符串的子串獲得一個當(dāng)前字符串的子串 其相關(guān)方法:其相關(guān)方法:substring(int start ,int end)substring(int start ,int end)9 9public String trim() :public String trim() :得到一個得到一個s s去掉前后空格后的字符串對象。去掉前后空格后的字符串對象。 例題例題9-49-49.1.3 符串與基本數(shù)據(jù)的相互轉(zhuǎn)化符串與基本數(shù)據(jù)的相互轉(zhuǎn)化 java.la
9、ngjava.lang包中的包中的IntegerInteger類調(diào)用其類方法:類調(diào)用其類方法: public static int parseInt(String s) public static int parseInt(String s) 可以將由可以將由“數(shù)字字符組成的字符串,如數(shù)字字符組成的字符串,如1235612356,轉(zhuǎn)化為,轉(zhuǎn)化為intint型數(shù)據(jù),例如:型數(shù)據(jù),例如:int int x; x; String s = 123456; String s = 123456; x = Integer.parseInt(s); x = Integer.parseInt(s); 類似地類似
10、地, ,使用使用java.langjava.lang包中的包中的ByteByte、ShortShort、LongLong、FloatFloat、DoubleDouble類調(diào)相應(yīng)的類類調(diào)相應(yīng)的類方法可以將由方法可以將由“數(shù)字字符組成的字符串,轉(zhuǎn)化為相應(yīng)的基本數(shù)據(jù)類型。數(shù)字字符組成的字符串,轉(zhuǎn)化為相應(yīng)的基本數(shù)據(jù)類型。 可以使用可以使用String String 類的類方法類的類方法public static String valueOf (byte n)public static String valueOf (byte n)等將形如等將形如123123、1232.981232.98等數(shù)值轉(zhuǎn)化為字
11、符串。等數(shù)值轉(zhuǎn)化為字符串??梢允褂每梢允褂肔ongLong類中的類方法類中的類方法public static String toBinaryString(long i)public static String toBinaryString(long i)等得到整等得到整數(shù)的各種進(jìn)制的字符串表示。例題數(shù)的各種進(jìn)制的字符串表示。例題9-59-5 注注 應(yīng)用程序中的應(yīng)用程序中的mainmain方法中的參數(shù)方法中的參數(shù)argsargs能接受用戶從鍵盤鍵入的字符串。比如,使用能接受用戶從鍵盤鍵入的字符串。比如,使用解釋器解釋器java.exejava.exe來執(zhí)行主類來執(zhí)行主類 C:2000java E
12、xample9_5 12.89 35 78 C:2000java Example9_5 12.89 35 78這時這時, ,程序中的程序中的args0,arg1,arg2args0,arg1,arg2分別得到字符串分別得到字符串12.89,3512.89,35和和7878。9.1.4 對象的字符串表示對象的字符串表示 Object Object類有一個類有一個public String toString()public String toString()方法,一個對方法,一個對象通過調(diào)用該方法可以獲得該對象的字符串表示。象通過調(diào)用該方法可以獲得該對象的字符串表示。一個對象調(diào)用一個對象調(diào)用toS
13、tring()toString()方法返回的字符串的一般形式為:方法返回的字符串的一般形式為: 創(chuàng)建對象的類的名字對象的引用的字符串表示創(chuàng)建對象的類的名字對象的引用的字符串表示 例題例題9-69-69.1.5 字符串與字符、字節(jié)數(shù)組字符串與字符、字節(jié)數(shù)組 1 1字符串與字符數(shù)組字符串與字符數(shù)組 String String 類的構(gòu)造方法:類的構(gòu)造方法:String(char)String(char)和和String(charString(char,int offsetint offset,int length)int length)分別用字符數(shù)組中的全部字符和部分分別用字符數(shù)組中的全部字符和部分
14、字符創(chuàng)建字符串對象字符創(chuàng)建字符串對象 String String類提供了將字符串存放到數(shù)組中的方法:類提供了將字符串存放到數(shù)組中的方法:public void getChars(int start,int end,char c,int public void getChars(int start,int end,char c,int offset ) offset ) 將字符串中的全部字符存放在一個字符數(shù)組中的方法:將字符串中的全部字符存放在一個字符數(shù)組中的方法:p u b l i c c h a r t o C h a r A r r a y ( ) p u b l i c c h a r
15、t o C h a r A r r a y ( ) 例題例題9-79-72 2字符串與字節(jié)數(shù)組字符串與字節(jié)數(shù)組 String(byte) String(byte)用指定的字節(jié)數(shù)組構(gòu)造一個字符串對象。用指定的字節(jié)數(shù)組構(gòu)造一個字符串對象。String(byteString(byte,int offsetint offset,int length) int length) 用指定的字節(jié)數(shù)組用指定的字節(jié)數(shù)組的一部分,即從數(shù)組起始位置的一部分,即從數(shù)組起始位置offsetoffset開始取開始取lengthlength個字節(jié)構(gòu)造一個字節(jié)構(gòu)造一個字符串對象。個字符串對象。 public byte getB
16、ytes() public byte getBytes() 方法使用平臺默認(rèn)的字符編碼,方法使用平臺默認(rèn)的字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。 public byte getBytes(String charsetName) public byte getBytes(String charsetName) 使用參數(shù)使用參數(shù)指定字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。指定字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。 例題例題9-89-89.1.6 正則表達(dá)式及字符串的替換與分解正則表達(dá)式及字符串的替換與分解 1 1正則表達(dá)式正則表達(dá)式 一個正則表達(dá)式是含有一
17、些具有特殊意義字符的字符串,這些一個正則表達(dá)式是含有一些具有特殊意義字符的字符串,這些特殊字符稱作正則表達(dá)式中的元字符。比如特殊字符稱作正則表達(dá)式中的元字符。比如 “dhello “dhello中的中的dd就就是有特殊意義的元字符,代表是有特殊意義的元字符,代表0 0到到9 9中的任何一個。字符串對象調(diào)用中的任何一個。字符串對象調(diào)用 public boolean matches(String regex)public boolean matches(String regex)方法可以判斷當(dāng)前字符串對方法可以判斷當(dāng)前字符串對象是否和參數(shù)象是否和參數(shù)regexregex指定的正則表達(dá)式匹配。參考表
18、指定的正則表達(dá)式匹配。參考表9.19.1,表,表9.2 9.2 。 2 2字符串的替換字符串的替換 字符串對象調(diào)用字符串對象調(diào)用public String replaceAll(String public String replaceAll(String regex,String replacement)regex,String replacement)方法返回一個字符串,該字符串是當(dāng)前字方法返回一個字符串,該字符串是當(dāng)前字符串中所有和參數(shù)符串中所有和參數(shù)regexregex指定的正則表達(dá)式匹配的子字符串被參數(shù)指定的正則表達(dá)式匹配的子字符串被參數(shù)replacementreplacement指定
19、的字符串替換后的字符串,例如:指定的字符串替換后的字符串,例如:String String result=12hello567.replaceAll(d+,result=12hello567.replaceAll(d+,你好你好););那么那么resultresult就是:就是:“你好你好hellohello你好你好” ” 例題例題9-99-93 3字符串的分解字符串的分解 字符串調(diào)用字符串調(diào)用public String split(String regex)public String split(String regex)使用參數(shù)使用參數(shù)指定的正則表達(dá)式指定的正則表達(dá)式regexregex做
20、為分隔標(biāo)記分解出其中的單詞做為分隔標(biāo)記分解出其中的單詞, ,并將分解出并將分解出的單詞存放在字符串?dāng)?shù)組中。例如,對于字符串:的單詞存放在字符串?dāng)?shù)組中。例如,對于字符串:str=“1931str=“1931年年0909月月1818日晚日晚, ,日本發(fā)動侵華戰(zhàn)爭日本發(fā)動侵華戰(zhàn)爭, ,請記住這個日子!請記住這個日子!”; ”; 使用正則表達(dá)式:使用正則表達(dá)式:String regex=D+; String regex=D+; 做 為 分 隔 標(biāo) 記 分 解 出做 為 分 隔 標(biāo) 記 分 解 出 s t rs t r 中 的 單 詞中 的 單 詞 S t r i n g S t r i n g dig
21、itWord=str.split(regex); digitWord=str.split(regex); 例題例題9-109-10那么,那么,digitWord0digitWord0、digitWord1digitWord1和和digitWord2digitWord2就分別是就分別是19311931、0909和和1818。 9.2 StringBuffer類類 9.2.1 StringBuffer對象的創(chuàng)建對象的創(chuàng)建 String s = new String(我喜歡學(xué)習(xí)我喜歡學(xué)習(xí)); StringBuffer buffer = new StringBuffer(“我喜歡學(xué)習(xí)我喜歡學(xué)習(xí)”);
22、buffer.append(數(shù)學(xué)數(shù)學(xué)); StringBufferStringBuffer類有三個構(gòu)造方法:類有三個構(gòu)造方法:1 1StringBuffer()StringBuffer()2 2StringBuffer(int size)StringBuffer(int size)3 3StringBuffer(String s) StringBuffer(String s) 例題例題9-119-119.2.2 StringBuffer類的常用方法類的常用方法 1 1StringBuffer append(String s):StringBuffer append(String s):將一個字
23、符串對象追加到當(dāng)前將一個字符串對象追加到當(dāng)前StringBufferStringBuffer對象中對象中 StringBuffer append(int n) StringBuffer append(int n):將一個:將一個intint型數(shù)據(jù)轉(zhuǎn)化為字符串對象后再追型數(shù)據(jù)轉(zhuǎn)化為字符串對象后再追加到當(dāng)前加到當(dāng)前StringBufferStringBuffer對象中對象中 StringBuffer append(Object o) StringBuffer append(Object o):將一個:將一個ObjectObject對象的字符串表示追加到對象的字符串表示追加到當(dāng)前當(dāng)前StringBu
24、fferStringBuffer對象中對象中 類似的方法還有:類似的方法還有: StringBuffer append(long n),StringBuffer append(boolean n), StringBuffer append(long n),StringBuffer append(boolean n), StringBuffer append(float n),StringBuffer append(double n), StringBuffer append(float n),StringBuffer append(double n), StringBuffer append(
25、char n) StringBuffer append(char n)2 2public chat charAt(int n ):public chat charAt(int n ):得到參數(shù)得到參數(shù)n n指定的置上的單個字符指定的置上的單個字符 public void setCharAt(int n ,char ch): public void setCharAt(int n ,char ch):將當(dāng)前將當(dāng)前StringBufferStringBuffer對象實(shí)體對象實(shí)體中的字符串位置中的字符串位置n n處的字符用參數(shù)處的字符用參數(shù)chch指定的字符替換指定的字符替換3 3StringBuf
26、fer insert(int index, String str) :StringBuffer insert(int index, String str) :將參數(shù)將參數(shù)strstr指定的字符串指定的字符串插入到參數(shù)插入到參數(shù)indexindex指定的位置指定的位置 4 4public StringBuffer reverse() :public StringBuffer reverse() :將該對象實(shí)體中的字符翻轉(zhuǎn)將該對象實(shí)體中的字符翻轉(zhuǎn)5 5StringBuffer delete(int startIndex, int endIndex) :StringBuffer delete(int
27、 startIndex, int endIndex) :從當(dāng)前從當(dāng)前StringBufferStringBuffer對象實(shí)體中的字符串中刪除一個子字符串對象實(shí)體中的字符串中刪除一個子字符串 其相關(guān)方法:其相關(guān)方法: deleteCharAt(int index) deleteCharAt(int index) 刪除當(dāng)前刪除當(dāng)前StringBufferStringBuffer對象實(shí)體對象實(shí)體的字符串中的字符串中indexindex位置處的一個字符。位置處的一個字符。6. StringBuffer replace( int startIndex ,int endIndex, String str)
28、 :6. StringBuffer replace( int startIndex ,int endIndex, String str) :將當(dāng)前將當(dāng)前StringBufferStringBuffer對象實(shí)體中的字符串的一個子字符串用參數(shù)對象實(shí)體中的字符串的一個子字符串用參數(shù)strstr指定的字指定的字符串替換符串替換 例題例題9-129-129. 3 StringTokenizer類類 StringTokenizer StringTokenizer類在類在java.utiljava.util包中,有兩個包中,有兩個常用的構(gòu)造方法:常用的構(gòu)造方法:StringTokenizerStringTo
29、kenizerString sString s):為字符串):為字符串s s構(gòu)構(gòu)造一個分析器。使用默認(rèn)的分隔標(biāo)記,即空格符造一個分析器。使用默認(rèn)的分隔標(biāo)記,即空格符若干個空格被看做一個空格)、換行符、回車若干個空格被看做一個空格)、換行符、回車符、符、TabTab符、進(jìn)紙符。符、進(jìn)紙符。 StringTokenizer(String s, String delim) StringTokenizer(String s, String delim):為字符串為字符串s s構(gòu)造一個分析器。參數(shù)構(gòu)造一個分析器。參數(shù)dilimdilim中的字符中的字符被作為分隔標(biāo)記被作為分隔標(biāo)記 。 StringTok
30、enizer StringTokenizer對象稱作一個字符串分析器對象稱作一個字符串分析器可以使用下列方法:可以使用下列方法: nextToken() nextToken():逐個獲取字符串中的語言符:逐個獲取字符串中的語言符號單詞),字符串分析器中的負(fù)責(zé)計數(shù)的變量號單詞),字符串分析器中的負(fù)責(zé)計數(shù)的變量的值就自動減一的值就自動減一 。 hasMoreTokens() hasMoreTokens():只要字符串中還有語言符:只要字符串中還有語言符號,即計數(shù)變量的值大于號,即計數(shù)變量的值大于0 0,該方法就返回,該方法就返回truetrue,否則返回否則返回falsefalse。 countT
31、okens() countTokens():得到分析器中計數(shù)變量的:得到分析器中計數(shù)變量的值。值。 例題例題9-13 9-13 例題例題9-149-149.4 Scanner類類 使用默認(rèn)分隔標(biāo)記解析文件 創(chuàng)建Scanner對象,并將要解析的字符串傳遞給所構(gòu)造的對象例如,對于字符串 String s = telephone cost 876 dollar.Computer cost 2398.89 dollar.;為了解析出s中的單詞,可以如下構(gòu)造一個Scanner對象: Scanner scanner = new Scanner(s);那么scanner默認(rèn)地使用空格做為分隔標(biāo)記來解析字符串
32、中的單詞。也可以讓Scanner Scanner對象調(diào)用方法:useDelimiter(正則表達(dá)式);將正則表達(dá)式做為分隔標(biāo)記,即Scanner對象在解析字符串時,把與正則表達(dá)式匹配的字符串做為分隔標(biāo)記。 例題9-15ScannerScanner對象解析字符串的特點(diǎn)如下:對象解析字符串的特點(diǎn)如下: scanner scanner調(diào)用調(diào)用next()next()方法依次返回被解析的字符串方法依次返回被解析的字符串s s中的單詞中的單詞, ,如果如果s s最后一最后一個單詞已被個單詞已被next()next()方法返回方法返回,scanner,scanner調(diào)用調(diào)用hasNext()hasNext
33、()將返回將返回falsefalse,否則返回,否則返回truetrue。對于被解析的字符串對于被解析的字符串s s中的數(shù)字型的單詞,比如中的數(shù)字型的單詞,比如876,2398.89876,2398.89等等,scanner,scanner可以可以用用nextInt()nextInt()或或nextDouble()nextDouble()方法來代替方法來代替next()next()方法,即方法,即scannerscanner可以調(diào)用可以調(diào)用nextInt()nextInt()或或nextDouble()nextDouble()方法將數(shù)字型單詞轉(zhuǎn)化為方法將數(shù)字型單詞轉(zhuǎn)化為intint或或doub
34、ledouble數(shù)據(jù)返回。數(shù)據(jù)返回。如果單詞不是數(shù)字型單詞如果單詞不是數(shù)字型單詞,scanner,scanner調(diào)用調(diào)用nextInt()nextInt()或或nextDouble()nextDouble()方法將發(fā)方法將發(fā)生生InputMismatchExceptionInputMismatchException異常異常, ,在處理異常時可以調(diào)用在處理異常時可以調(diào)用next()next()方法返回該非方法返回該非數(shù)字化單詞。數(shù)字化單詞。9.5 Date和和Clendar類類 9.5.1 Date對象對象 Date類在類在java.util包中。使用包中。使用Date類的無參數(shù)構(gòu)造方法創(chuàng)建類的
35、無參數(shù)構(gòu)造方法創(chuàng)建的對象可以獲取本地當(dāng)前時間。的對象可以獲取本地當(dāng)前時間。 計算機(jī)時間的計算機(jī)時間的“公元設(shè)置在公元設(shè)置在1970.年年1月月1日日0時格林威治時格林威治時間),可以根據(jù)這個時間使用時間),可以根據(jù)這個時間使用Date的帶參數(shù)的構(gòu)造方法:的帶參數(shù)的構(gòu)造方法: Date(long time) 例:例:Date date1=new Date(1000), date2=new Date(-1000); date1就是就是1970年年01月月01日日08時時00分分01秒、秒、date2就是就是1970年年01月月01日日07時時59分分59秒秒 可以用可以用System類的靜態(tài)方法類
36、的靜態(tài)方法 public long currentTimeMillis()獲取系統(tǒng)當(dāng)前時間,如果運(yùn)行獲取系統(tǒng)當(dāng)前時間,如果運(yùn)行Java程序的本地時區(qū)是北京時區(qū),這個時間是從程序的本地時區(qū)是北京時區(qū),這個時間是從1970年年1月月1日日08點(diǎn)到目前時刻所走過的毫秒數(shù)。點(diǎn)到目前時刻所走過的毫秒數(shù)。 Date對象表示時間的默認(rèn)順序是:星期、月、日、小時、分、對象表示時間的默認(rèn)順序是:星期、月、日、小時、分、秒、時區(qū),年。例如:秒、時區(qū),年。例如:Tue Mar 12 10:13:58 CST 2019。 9.5.2 Calendar對象對象 1 Calendar1 Calendar類在類在java.
37、utiljava.util包中。使用包中。使用CalendarCalendar類的類的staticstatic方法方法 getInstance()getInstance()可以初始化一個日歷對象,如:可以初始化一個日歷對象,如:Calendar calendar= Calendar.getInstance();Calendar calendar= Calendar.getInstance();2 calendar2 calendar對象可以調(diào)用方法:對象可以調(diào)用方法:public final void set(int year,int month,int date)public final v
38、oid set(int year,int month,int date)public final void set(int year,int month,int date,int public final void set(int year,int month,int date,int hour,int minute)hour,int minute)public final void set(int year,int month, int date, int public final void set(int year,int month, int date, int hour, int mi
39、nute,int second)hour, int minute,int second)將日歷翻到任何一個時間將日歷翻到任何一個時間 3 calendar3 calendar對象常用方法對象常用方法 public int get(int field) public int get(int field) :可以獲取有關(guān)年份:可以獲取有關(guān)年份, ,月份月份, ,小時小時, ,星期等信息星期等信息 例如例如 calendar.get(Calendar.MONTH); calendar.get(Calendar.MONTH); calendar.get(DAY_OF_WEEK); calendar.g
40、et(DAY_OF_WEEK); public long getTimeInMillis() public long getTimeInMillis() :可以將時間表示為毫秒。:可以將時間表示為毫秒。 例題例題9-169-16,例題,例題9-179-179.5.3 日期格式化日期格式化 1 使用使用SimpleDateFormat類類 使 用使 用 j a v a . u t i l 包 中 的包 中 的 D a t e F o r m a t 的 子 類的 子 類SimpleDateFormat類來實(shí)現(xiàn)日期的格式化。類來實(shí)現(xiàn)日期的格式化。SimpleDateFormat有一個常用構(gòu)造方法:
41、有一個常用構(gòu)造方法: public SimpleDateFormat(String pattern); 該構(gòu)造方法可以用參數(shù)該構(gòu)造方法可以用參數(shù)pattern指定的格式創(chuàng)建一個對指定的格式創(chuàng)建一個對象,該對象調(diào)用:象,該對象調(diào)用:public String format(Date date)方法方法格式化時間對象格式化時間對象date。 pattern是由普通字符和一些稱作格式符所組成的字符是由普通字符和一些稱作格式符所組成的字符序列。序列。format 方法在格式化方法在格式化date時,將用時,將用date中的相應(yīng)中的相應(yīng)的時間替換相應(yīng)的格式符,簡單地說的時間替換相應(yīng)的格式符,簡單地說,,
42、format方法返回方法返回的字符串就是把的字符串就是把pattern中的格式符用相應(yīng)時間替換后的中的格式符用相應(yīng)時間替換后的字符序列。字符序列。 例題例題9-182 format2 format方法方法 可以使用更為方便的可以使用更為方便的Formatter類,類,F(xiàn)ormatter類的類的format方法:方法: format(格式化模式格式化模式 , 日期列表日期列表)按著按著“格式化模式格式化模式” 前往前往 “日期列表中所列各個日期中所含數(shù)據(jù)日期列表中所列各個日期中所含數(shù)據(jù)年,月,日,小時等數(shù)據(jù)的字符串表示。年,月,日,小時等數(shù)據(jù)的字符串表示。 目前目前Java已經(jīng)將已經(jīng)將forma
43、t方法封裝到方法封裝到String類中類中,是是String類的的一個靜類的的一個靜態(tài)方法,因此程序可以直接使用態(tài)方法,因此程序可以直接使用String類調(diào)用類調(diào)用format方法對日期進(jìn)行格方法對日期進(jìn)行格式化。式化。 格式化模式格式化模式 format方法中的方法中的“格式化模式是一個用雙引號括起的字符序列格式化模式是一個用雙引號括起的字符序列(字字符串符串),該字符序列中的字符由時間格式符和普通字符所構(gòu)成。如該字符序列中的字符由時間格式符和普通字符所構(gòu)成。如日日期期:%ty-%tm-%td例如:例如:String s = String.format(%tY年年%tm月月%td日日,new
44、 Date(),new Date(),new Date();那么那么s就是就是2019年年02月月10日日 日期列表日期列表 format方法中的方法中的“日期列表可以是用逗號分隔的日期列表可以是用逗號分隔的Calendar對象或?qū)ο蠡駾ate對象。要保證對象。要保證format方法方法“格式化模式中的格式符的個數(shù)與格式化模式中的格式符的個數(shù)與“日日期列表中列出的日期個數(shù)相同。期列表中列出的日期個數(shù)相同。format方法默認(rèn)按從左到右的順序使方法默認(rèn)按從左到右的順序使用用“格式化模式中的格式符來格式格式化模式中的格式符來格式“日期列表中對應(yīng)的日期,而日期列表中對應(yīng)的日期,而“格式化模式中的普通
45、字符保留原樣。格式化模式中的普通字符保留原樣。3 3 格式化同一日期格式化同一日期 希望用幾個格式符號來格式化“日期列表中的同一個日期,可以在“格式化模式中使用“”,比如:%ty-%tm-%td中的三個格式符將會格式化同一日期,即含有“”的格式符和它前面的格式符一同格式化同一個日期,例如: String s = String.format(%ty年%tm月%td日,new Date();那么%tm和%td都格式化new Date(),因此字符串s就是:11年02月10日。以下是常用的日期格式符及作用: %tY 將日期中的“年格式化為4位形式,例如,2019,2019。 %ty 將日期中的“年格
46、式化為2位形式帶前導(dǎo)零),例如,99,02。 %tm 將日期中的“月格式化為2位形式帶前導(dǎo)零),即01-13,其中01是一年的第一個月(13是支持陰歷所需的一個特殊值)。 等等。9.5.4 不同區(qū)域的星期格式不同區(qū)域的星期格式 不同國家的星期的簡稱或全稱有很大的不同,例如美國用ThuThursday簡稱全稱星期四、日本用“木”(木曜日簡稱全稱星期四,意大利用giogioved簡稱全稱星期四等。如果想用特定地區(qū)的星期格式來表示日期中的星期,可以用format的重載方法:format (Locale locale,格式化模式 , 日期列表);其中的參數(shù)locale是一個Locale類的實(shí)例,用于表
47、示地域。Locale類的static常量都是Locale對象,其中US是表示美國的static常量。 比如,假設(shè)時間是2019年3月12日,該日是星期四,如果format方法中的參數(shù)local取值:Locale.US,那么%tA得到的結(jié)果就是Thursday,如果format方法中的參數(shù)local取值:Locale. JAPAN,那么%tA得到的結(jié)果就是木曜日。 注:如果format方法不使用Locale參數(shù)格式化日期,當(dāng)前應(yīng)用程序所在系統(tǒng)的地區(qū)設(shè)置是中國,那么相當(dāng)于locale參數(shù)取Locale.CHINA。 例題9-199. 6 Math、BigInteger和和Random類類 9.6.
48、1 Math類類 Math類在類在java.lang包中。包中。Math類包含許多用來進(jìn)行科學(xué)計算的類方法,這類包含許多用來進(jìn)行科學(xué)計算的類方法,這些方法可以直接通過類名調(diào)用。另外,些方法可以直接通過類名調(diào)用。另外,Math類還有兩個靜態(tài)常量,它們分別類還有兩個靜態(tài)常量,它們分別是:是:E 2.7182828284590452354和和PI 3.14159265358979323846。以下是以下是Math類的常用類方法:類的常用類方法:*public static long abs(double a) 返回返回a的絕對值。的絕對值。*public static double max(doub
49、le a,double b) 返回返回a、b的最大值。的最大值。*public static double min(double a,double b) 返回返回a、b的最小值。的最小值。*public static double random() 產(chǎn)生一個產(chǎn)生一個0到到1之間的隨機(jī)數(shù)不包括之間的隨機(jī)數(shù)不包括0和和1)。)。*public static double pow(double a,double b) 返回返回a的的b次冪。次冪。*public static double sqrt(double a) 返回返回a的平方根。的平方根。*public static double log(
50、double a) 返回返回a的對數(shù)。的對數(shù)。*public static double sin(double a) 返回正弦值。返回正弦值。*public static double asin(double a) 返回反正弦值。返回反正弦值。9.6.2 BigInteger類類 1 java.math1 java.math包中的包中的BigIntegerBigInteger類提供任意精度的類提供任意精度的整數(shù)運(yùn)算??梢允褂脴?gòu)造方法:整數(shù)運(yùn)算。可以使用構(gòu)造方法: public BigInteger(String val) public BigInteger(String val)構(gòu)造一個十進(jìn)制
51、的構(gòu)造一個十進(jìn)制的BigIntegerBigInteger對象。對象。 2 2 以下是以下是BigIntegerBigInteger類的常用類方法:類的常用類方法:* *public BigInteger add(BigInteger val) public BigInteger add(BigInteger val) 返返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的和?;禺?dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的和。* *public BigInteger subtract(BigInteger val)public BigInteger subtract(BigInteger val)返回當(dāng)前大整
52、數(shù)對象與參數(shù)指定的大整數(shù)對象的返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的差。差。* * public BigInteger multiply(BigInteger val) public BigInteger multiply(BigInteger val)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的積。積。* *public BigInteger divide(BigInteger val)public BigInteger divide(BigInteger val)返返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的商?;禺?dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對
53、象的商。* *public BigInteger remainder(BigInteger val)public BigInteger remainder(BigInteger val)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的余。余。* *public int compareTo(BigInteger val) public int compareTo(BigInteger val) 返回返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)的比較結(jié)果,當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)的比較結(jié)果,返回值是返回值是1 1、-1-1或或0 0,分別表示當(dāng)前大整數(shù)對象大,分
54、別表示當(dāng)前大整數(shù)對象大于、小于或等于參數(shù)指定的大整數(shù)。于、小于或等于參數(shù)指定的大整數(shù)。* *public BigInteger abs() public BigInteger abs() 返回當(dāng)前大整數(shù)對返回當(dāng)前大整數(shù)對象的絕對值。象的絕對值。* *public BigInteger pow(int a) public BigInteger pow(int a) 返回當(dāng)前大整返回當(dāng)前大整數(shù)對象的數(shù)對象的a a次冪。次冪。* *public String toString() public String toString() 返回當(dāng)前大整數(shù)對返回當(dāng)前大整數(shù)對象十進(jìn)制的字符串表示。象十進(jìn)制的字符串
55、表示。* *public String toString(int p) public String toString(int p) 返回當(dāng)前大返回當(dāng)前大整數(shù)對象整數(shù)對象p p進(jìn)制的字符串表示。進(jìn)制的字符串表示。 例題例題9-209-209.6.3 Romdom類類 可以使用Math類調(diào)用其類方法random()返回一個0至1之間的隨機(jī)數(shù)不包括0和1),例如,下列代碼得到1至100之間的一個隨機(jī)整數(shù)包括1和100):(int)(Math.random()*100)+1; Java提供了更為靈活的用于獲得隨機(jī)數(shù)的Romdom類該類在java.util包中)。使用Romdom類的如下構(gòu)造方法: pu
56、blic Random(); public Random(long seed);創(chuàng)建Rondom對象,其中第二個構(gòu)造方法使用參數(shù)seed指定的種子創(chuàng)建一個Rondom對象。 習(xí)慣地將Rondom對象稱為隨機(jī)數(shù)生成器。例如下列隨機(jī)數(shù)生成器random調(diào)用不帶參數(shù)的nextInt()方法返回一個隨機(jī)整數(shù):Random random=new Random();random.nextInt();相關(guān)方法及使用: nextInt(int m)方法 ,例如 random.nextInt(100); 返回一個0至100之間的隨機(jī)整數(shù)包括0,但不包括100)。 nextBoolean()方法,例如random
57、.nextBoolean(); 返回一個隨機(jī)boolean值。9. 7 DecimalFormat類類 DecimalFormat DecimalFormat類在類在java.textjava.text包中。包中。 可以用可以用DecimalFormatDecimalFormat類對輸出的數(shù)字結(jié)果進(jìn)類對輸出的數(shù)字結(jié)果進(jìn)行必要的格式化行必要的格式化 。9.7.1 格式化數(shù)字格式化數(shù)字 1 1 格式化整數(shù)位和小數(shù)位格式化整數(shù)位和小數(shù)位 DecimalFormat DecimalFormat對象調(diào)用:對象調(diào)用:public final String format(double public fina
58、l String format(double number);number);對參數(shù)指定的數(shù)字進(jìn)行格式化,并將格式化結(jié)果以對參數(shù)指定的數(shù)字進(jìn)行格式化,并將格式化結(jié)果以StringString對象返回。對象返回。例如:例如:DecimalFormat format=new DecimalFormat(00000.00); DecimalFormat format=new DecimalFormat(00000.00); 那么那么 String result=format.format(6789.8765); String result=format.format(6789.8765);得到的得到
59、的resultresult是:是:“06789.88” “06789.88” 2 2 整數(shù)位的分組整數(shù)位的分組 當(dāng)希望將數(shù)字的整數(shù)部分分組用逗號分隔當(dāng)希望將數(shù)字的整數(shù)部分分組用逗號分隔),),可以在可以在DecimalFormatDecimalFormat對象中的對象中的例如:將例如:將 “123456789.9876543” “123456789.9876543” 的整數(shù)部分按的整數(shù)部分按4 4位分組的一個格式化模式是:位分組的一個格式化模式是:“#,#“#,#,#,#00.00”#,#00.00” 使用該模式格式化上述數(shù)字的結(jié)果是:使用該模式格式化上述數(shù)字的結(jié)果是:1,2345,6789.
60、99 1,2345,6789.99 3 3 格式化為百分?jǐn)?shù)或千分?jǐn)?shù)格式化為百分?jǐn)?shù)或千分?jǐn)?shù) 在在DecimalFormatDecimalFormat對象中的數(shù)字格式化模式尾加對象中的數(shù)字格式化模式尾加“%”“%”,可以將數(shù)字格式化為,可以將數(shù)字格式化為百分?jǐn)?shù)、尾加百分?jǐn)?shù)、尾加“u2030“u2030將數(shù)字格式化為千分?jǐn)?shù)。將數(shù)字格式化為千分?jǐn)?shù)。 4 4 格式化為科學(xué)計數(shù)格式化為科學(xué)計數(shù) 在在DecimalFormatDecimalFormat對象中的數(shù)字格式化模式尾加對象中的數(shù)字格式化模式尾加“E0”“E0”,可以將數(shù)字格式化為,可以將數(shù)字格式化為科學(xué)計數(shù)??茖W(xué)計數(shù)。 5 5 格式化為貨幣值格式化
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程價單合同范例
- 全科醫(yī)學(xué)導(dǎo)論練習(xí)題庫含答案
- 網(wǎng)絡(luò)安全管理員中級工試題及答案
- 1+X糧農(nóng)證書練習(xí)題(附答案)
- 委托房屋貸款合同范例
- 冰柜購銷合同范例
- 企業(yè)托管經(jīng)營合同范例
- 勞務(wù)分包居間合同范例
- 2025年江蘇貨運(yùn)從業(yè)資格證摸擬考試試題
- 油罐租賃協(xié)議合同范例
- 小學(xué)語文人教一年級上冊(統(tǒng)編)-富全學(xué)校語文教案丁代英
- 水庫建設(shè)項目施工組織設(shè)計
- 系統(tǒng)集成類項目施工組織計劃方案
- 國家開放大學(xué)實(shí)驗學(xué)院生活中的法律第三單元測驗答案
- 詩朗誦社團(tuán)活動記錄
- 第3章 細(xì)胞命運(yùn)的決定(章節(jié)課程)
- 《積極心理學(xué)》課程教學(xué)大綱.docx
- 2014年吉林省長春市中考模擬數(shù)學(xué)
- 《金融工程原理-無套利均衡分析》筆記01
- 論文巖棉用酚醛樹脂體系
- 家具制造企業(yè)消防安全要求
評論
0/150
提交評論