




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章JavaAPIString類和StringBuffer類System類和Runtime類Math類和Random類包裝類Date類、Calendar類和DateFormat類6.1String類和StringBuffer類6.2System類與Runtime類6.3Math類與Random類6.4包裝類6.5Date類、Calendar類與DateFormat類6.6JDK7新特性——switch語(yǔ)句支持字符串類型6.1String類和
StringBuffer類
6.1.1String類的初始化Java中定義了String和StringBuffer兩個(gè)類來(lái)封裝字符串,并提供了一系列操作字符串的方法,它們都位于java.lang包中,因此不需要導(dǎo)包就可以直接使用。String類的對(duì)象具有常量特性,即被創(chuàng)建后對(duì)象中的字符序列不能修改,而StringBuffer類的對(duì)象所占的內(nèi)存空間可以變化,便于存放變化的字符串。在操作String類之前,首先需要對(duì)String類進(jìn)行初始化。1、使用字符串常量直接初始化一個(gè)String對(duì)象,具體代碼如下:6.1String類和
StringBuffer類
6.1.1String類的初始化2、使用String的構(gòu)造方法初始化字符串對(duì)象String類提供了多個(gè)構(gòu)造方法,常用的有5個(gè):可以通過(guò)一個(gè)字符串常量來(lái)構(gòu)造一個(gè)字符串對(duì)象,也可以通過(guò)一個(gè)字符數(shù)組或者字節(jié)數(shù)組構(gòu)造一個(gè)字符串對(duì)象。 (1)publicString(Stringstring) 例如:Strings=newString(“Hello”); (2)publicString(char[]value) 例如:char[]c={‘J’,’a’,’v’,’a’};Strings=newString(c);
(3)publicString(char[]value,intoffset,intcount)例如:char[]c={‘H’,’e’,’l’,’l’,’o’};Strings=newString(c,0,2);//s的值是“He”6.1String類和
StringBuffer類
6.1.1String類的初始化(4)publicString(byte[]bytes)例如:byte[]b={65,66,67,68,69,70};Strings=newString(b);//s的值是“ABCDEF”(5)publicString(byte[]bytes,intoffset,intlength)例如:byte[]b={65,66,67,68,69,70};Strings=newString(b,0,2);//s的值是“AB”字符串對(duì)象一旦創(chuàng)建,其內(nèi)容不會(huì)發(fā)生改變,也就是說(shuō)每一個(gè)字符串的實(shí)體都是一個(gè)常量。但是字符串的引用變量值可以改變:
Strings=“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”;//變成垃圾對(duì)象
s=newString("JavaEE開(kāi)發(fā)教程");6.1.1String類的初始化6.1String類和
StringBuffer類
6.1.1String類的初始化6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作1.字符串的基本操作在程序中,需要對(duì)字符串進(jìn)行一些基本操作,如獲得字符串長(zhǎng)度、獲得指定位置的字符等??梢钥闯?,String類提供的方法可以很方便地獲取字符串的長(zhǎng)度,獲取指定位置的字符以及指定字符的位置。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作2.字符串的遍歷
6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作3.字符串相等String類重寫(xiě)了Object類的equals()方法,實(shí)現(xiàn)字符串值相等判定,區(qū)分大小寫(xiě)。而==運(yùn)算符則用于判斷兩個(gè)對(duì)象是否為同一個(gè)對(duì)象實(shí)體。
6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作3.字符串相等有時(shí)候進(jìn)行字符串相等比較時(shí)不區(qū)分字符大小寫(xiě),String類提供了忽略大小寫(xiě)的相等判定方法equalsIgnoreCase()。
6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作4.字符串的判斷操作操作字符串時(shí),經(jīng)常需要對(duì)字符串進(jìn)行一些判斷,如判斷字符串是否以指定的字符串開(kāi)始、結(jié)束,是否包含指定的字符串,字符串是否為空等。例程6-5中涉及到的方法都是用于判斷字符串的,并且返回值均為boolean類型。其中,equals()方法比較重要,該方法將父類Object中equals()方法進(jìn)行了重寫(xiě)。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 5.字符串的查詢操作操作字符串時(shí),經(jīng)常需要對(duì)字符串進(jìn)行一些判斷,如判斷字符串是否以指定的字符串開(kāi)始、結(jié)束,是否包含指定的字符串,字符串是否為空等。publicintindexOf(charc):在當(dāng)前字符串中查找字符c,若找到則返回首次出現(xiàn)字符c的下標(biāo),否則返回-1。publicintindexOf(Strings):在當(dāng)前字符串中查找字符串s,若找到則返回首次出現(xiàn)字符串s的首字符的下標(biāo),否則返回-1。publicintlastIndexOf(charc):返回字符c最后出現(xiàn)在當(dāng)前字符串中的下標(biāo),否則返回-1。publicintlastIndexOf(Strings):返回字符串s在當(dāng)前字符串中最后一次出現(xiàn)的首字符下標(biāo),否則返回-1。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 5.字符串的查詢操作
6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 6.字符串的替換和去除空格操作程序開(kāi)發(fā)中,用戶輸入數(shù)據(jù)時(shí)經(jīng)常會(huì)有一些錯(cuò)誤和空格,這時(shí)可以使用String類的replace()和trim()方法,進(jìn)行字符串的替換和去除空格操作。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 6.字符串的替換和去除空格操作程序開(kāi)發(fā)中,用戶輸入數(shù)據(jù)時(shí)經(jīng)常會(huì)有一些錯(cuò)誤和空格,這時(shí)可以使用String類的replace()和trim()方法,進(jìn)行字符串的替換和去除空格操作。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 7.字符串的截取(取字串)和分割在String類中針對(duì)字符串的截取和分割操作提供了兩個(gè)方法,其中,substring()方法用于截取字符串的一部分,split()方法可以將字符串按照某個(gè)一個(gè)字符串(可以是正則表達(dá)式)進(jìn)行分割,并將分割的結(jié)果保存到一個(gè)字符串?dāng)?shù)組中。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 7.字符串的截?。ㄈ∽执┖头指钤赟tring類中針對(duì)字符串的截取和分割操作提供了兩個(gè)方法,其中,substring()方法用于截取字符串的一部分,split()方法可以將字符串按照某個(gè)一個(gè)字符串(可以是正則表達(dá)式)進(jìn)行分割,并將分割的結(jié)果保存到一個(gè)字符串?dāng)?shù)組中。6.1String類和
StringBuffer類
6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作在程序開(kāi)發(fā)中,經(jīng)常需要對(duì)字符串進(jìn)行轉(zhuǎn)換操作,例如將字符串轉(zhuǎn)換成數(shù)組的形式,將字符串中的字符進(jìn)行大小寫(xiě)轉(zhuǎn)換等。(1)字符串大小寫(xiě)轉(zhuǎn)換Strings="Abc";
Strings1=s.toLowerCase();
Strings2=s.toUpperCase();則s1的值為"abc",s2的值為"ABC",s的值不變。(2)字符串轉(zhuǎn)化為數(shù)字:可以采用Integer類的intparseInt(Strings)方法,Byte、Short、Long、Float、Double類提供了相應(yīng)的靜態(tài)方法,例如Double.parseDouble(Strings)。6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作(3)數(shù)字轉(zhuǎn)化為字符串:用連接符+,還可以使用String類的方法valueOf(數(shù)值),或者使用Integer和Long類提供的靜態(tài)方法StringtoString(i,p),得到整數(shù)i的p進(jìn)制的字符串表示。6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作(4)字符串轉(zhuǎn)化為字符數(shù)組publicvoidgetChars(intbegin,intend,char[]dst,intdstBegin):將當(dāng)前字符串的一部分復(fù)制到目標(biāo)字符數(shù)組中。publicchar[]toCharArray():將此字符串轉(zhuǎn)換為一個(gè)新的字符數(shù)組,它的長(zhǎng)度是此字符串的長(zhǎng)度,它的內(nèi)容被初始化為包含此字符串表示的字符序列。6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作(4)字符串轉(zhuǎn)化為字符數(shù)組6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作(5)字符串轉(zhuǎn)化為字節(jié)數(shù)組publicbyte[]getBytes():使用平臺(tái)的默認(rèn)字符集將當(dāng)前字符串轉(zhuǎn)換成字節(jié)數(shù)組。publicbyte[]getBytes(Charsetcharset):根據(jù)給定的字符集charset將當(dāng)前字符串轉(zhuǎn)換到字節(jié)數(shù)組中。
6.1String類和
StringBuffer類6.1.2String類的常見(jiàn)操作 7.字符串的轉(zhuǎn)換操作(5)字符串轉(zhuǎn)化為字節(jié)數(shù)組6.1String類和
StringBuffer類腳下留心String字符串在獲取某個(gè)字符時(shí),會(huì)用到字符的索引,當(dāng)訪問(wèn)字符串中的字符時(shí),如果字符的索引不存在,則會(huì)發(fā)生StringIndexOutOfBoundsException(字符串角標(biāo)越界異常)可以看出,訪問(wèn)字符串中的字符時(shí),不能超出字符的索引范圍,否則會(huì)出現(xiàn)異常,這與數(shù)組中的角標(biāo)越界異常非常相似。多學(xué)一招統(tǒng)計(jì)一個(gè)字符串中每個(gè)字符出現(xiàn)的次數(shù)6.1.3正則表達(dá)式正則表達(dá)式就是一個(gè)字符串模板,可以包含普通字符和元字符。元字符就是描述字符的字符,比如上面的“.”就是匹配任意一個(gè)字符。6.1String類和
StringBuffer類
6.1.3正則表達(dá)式還可以用[]括起來(lái)的若干字符來(lái)表示一個(gè)字符,比如:
[abc]:abc任何一個(gè)字符;
[^abc]:除了abc以外的任何一個(gè)字符;
[a-z]:a到z的任何一個(gè)字母;
[.]:表示普通意思的點(diǎn)符號(hào)。正則表達(dá)式中還有模式限定符:6.1String類和
StringBuffer類
6.1.3正則表達(dá)式身份證號(hào)碼是15位數(shù)字或者18位數(shù)字組成的序列,所有正則表達(dá)式可以寫(xiě)成“\\d{15}|\\d{18}”;QQ號(hào)碼最小是“10000”,正則表達(dá)式可以寫(xiě)成“[1-9][0-9]{4,10}”;Email的正則表達(dá)式是“\\w*[.-_]\\w*@\\w*[.]\\w*”。String類提供了matches方法可以進(jìn)行正則表達(dá)式驗(yàn)證。6.1String類和
StringBuffer類
6.1.3正則表達(dá)式6.1String類和
StringBuffer類
6.1.3正則表達(dá)式Java還提供了專門(mén)進(jìn)行模式匹配的庫(kù)類:Pattern類和Matcher類,它們位于java.util.regex包中。一般Pattern類和Matcher類聯(lián)合使用:1、先定義一個(gè)模式匹配字符串regex;2、通過(guò)Pattern類調(diào)用靜態(tài)方法compile(Stringregex)得到一個(gè)Pattern對(duì)象p;3、通過(guò)p對(duì)象調(diào)用matcher(CharSequenceinput)得到一個(gè)Matcher類對(duì)象m,其中input是要進(jìn)行模式匹配的字符串;4、最后通過(guò)m對(duì)象調(diào)用模式匹配的方法,有find()方法、matches()方法、lookingAt()方法等方法。matches()方法判定input是否與regex完全匹配。6.1String類和
StringBuffer類
6.1.3正則表達(dá)式6.1String類和
StringBuffer類
6.1.3正則表達(dá)式String[]Split(Stringregex)方法示例:6.1String類和
StringBuffer類
多學(xué)一招簡(jiǎn)單加密和解密程序6.1.4StringBuffer為了便于對(duì)字符串的修改,在JDK中提供了一個(gè)StringBuffer類(也稱字符串緩沖區(qū))。StringBuffer類和String類最大的區(qū)別在于它的內(nèi)容和長(zhǎng)度都是可以改變的。StringBuffer類似一個(gè)字符容器,當(dāng)在其中添加或刪除字符時(shí),并不會(huì)產(chǎn)生新的StringBuffer對(duì)象。6.1String類和
StringBuffer類6.1.4StringBuffer6.1String類和
StringBuffer類6.1.4StringBuffer6.1String類和
StringBuffer類例程6-8中涉及到StringBuffer類的很多方法,其中append()和insert()方法是最常用的,并且這兩個(gè)方法有很多重載形式,它們都用于添加字符。不同的是,append()方法始終將這些字符添加到緩沖區(qū)的末尾,而insert()方法則可以在指定的位置添加字符。6.1.4StringBufferStringBuffer類和String類有很多相似之處,初學(xué)者使用時(shí)容易混淆。String類表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長(zhǎng)度都是無(wú)法改變的。StringBuffer表示字符容器,其內(nèi)容和長(zhǎng)度都可以隨時(shí)修改。在操作字符串時(shí),如果該字符串僅用于表示數(shù)據(jù)類型,則使用String類即可,但是如果需要對(duì)字符串中的字符進(jìn)行增刪操作,則使用StringBuffer類。String類覆蓋了Object類的equals()方法,而StringBuffer類沒(méi)有覆蓋Object類的equals()方法。String類對(duì)象可以用操作符“+”進(jìn)行連接,而StringBuffer類對(duì)象之間不能。6.1String類和
StringBuffer類
多學(xué)一招Scanner類可以使用掃描器類Scanner來(lái)解析字符串。Scanner類提供了一個(gè)構(gòu)造器Scanner(Stringsource)
,構(gòu)造一個(gè)新的Scanner對(duì)象,默認(rèn)以空格為分隔符掃描指定字符串source。循環(huán)掃描時(shí),可以通過(guò)hasNext()方法判定是否存在下一個(gè)待提取的數(shù)據(jù)。示例:測(cè)試Scanner類解析字符串。多學(xué)一招Scanner類如果想使用正則表達(dá)式匹配的字符串作為分隔符來(lái)掃描一個(gè)字符串,可以調(diào)用Scanner類提供的另一個(gè)方法ScanneruseDelimiter(Stringpattern),該方法將掃描器的分隔模式設(shè)置為pattern模式。例如:6.2System類與
Runtime類6.2.1System類System類對(duì)大家來(lái)說(shuō)并不陌生,因?yàn)橹霸诖蛴〗Y(jié)果時(shí),使用的都是“System.out.println()”語(yǔ)句。這句代碼中就使用了System類。System類定義了一些與系統(tǒng)相關(guān)的屬性和方法,它所提供的屬性和方法都是靜態(tài)的,因此,想要引用這些屬性和方法,直接使用System類調(diào)用即可。System類定義了三個(gè)靜態(tài)屬性:out、in、err,分別表示標(biāo)準(zhǔn)的輸出流、輸入流和錯(cuò)誤流。6.2.1System類1.getProperty()方法6.2System類與
Runtime類6.2.1System類2.getProperties()方法
System類的getProperties()方法用于獲取當(dāng)前系統(tǒng)的全部屬性,該方法會(huì)返回一個(gè)Properties對(duì)象,其中封裝了系統(tǒng)的所有屬性,這些屬性是以鍵值對(duì)的形式存在。6.2System類與
Runtime類6.2.1System類3.currentTimeMillis()
currentTimeMillis()方法返回一個(gè)long類型的值,該值表示當(dāng)前時(shí)間與1970年1月1日0點(diǎn)0分0秒之間的時(shí)間差,單位是毫秒,習(xí)慣性地被稱作時(shí)間戳。6.2System類與
Runtime類
6.2.1System類4.a(chǎn)rraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)
arraycopy()方法用于將一個(gè)數(shù)組中的元素快速拷貝到另一個(gè)數(shù)組。其中的參數(shù)具體作用如下:src:表示源數(shù)組dest:表示目標(biāo)數(shù)組 srcPos:表示源數(shù)組中拷貝元素的起始位置destPos:表示拷貝到目標(biāo)數(shù)組的起始位置length:表示拷貝元素的個(gè)數(shù)需要注意的是,在進(jìn)行數(shù)組復(fù)制時(shí),目標(biāo)數(shù)組必須有足夠的空間來(lái)存放拷貝的元素,否則會(huì)發(fā)生角標(biāo)越界異常。6.2System類與
Runtime類
6.2.1System類4.a(chǎn)rraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)
例程6-11中,創(chuàng)建了兩個(gè)數(shù)組fromArray和toArray,分別代表源數(shù)組和目標(biāo)數(shù)組,當(dāng)調(diào)用arraycopy()方法進(jìn)行元素拷貝時(shí),由于指定了從源數(shù)組中索引為2的元素開(kāi)始拷貝,并且拷貝4個(gè)元素存放在目標(biāo)數(shù)組中索引為3的位置,因此,在打印目標(biāo)數(shù)組的元素時(shí),程序首先打印的是數(shù)組toArray的前三個(gè)元素201、202、203,然后打印的是從fromArray中拷貝的四個(gè)元素。6.2System類與
Runtime類
6.2.2Runtime類
Runtime類用于表示虛擬機(jī)運(yùn)行時(shí)的狀態(tài),它用于封裝JVM虛擬機(jī)進(jìn)程。每次使用java命令啟動(dòng)虛擬機(jī)都對(duì)應(yīng)一個(gè)Runtime實(shí)例,并且只有一個(gè)實(shí)例,因此該類采用單例模式進(jìn)行設(shè)計(jì),對(duì)象不可以直接實(shí)例化。若想在程序中獲得一個(gè)Runtime實(shí)例,只能通過(guò)以下方式:由于Runtime類封裝了虛擬機(jī)進(jìn)程,因此,在程序中通常會(huì)通過(guò)該類的實(shí)例對(duì)象來(lái)獲取當(dāng)前虛擬機(jī)的相關(guān)信息。6.2System類與
Runtime類
6.2.2Runtime類
例程6-12中,通過(guò)“Runtime.getRuntime()”方式創(chuàng)建了一個(gè)Runtime的實(shí)例對(duì)象,并分別調(diào)用該對(duì)象的availableProcessors()方法、freeMemory()方法和maxMemory()方法,將當(dāng)前虛擬機(jī)的處理器個(gè)數(shù)、空閑內(nèi)存數(shù)和可用最大內(nèi)存數(shù)的信息打印出來(lái)。6.2System類與
Runtime類
6.2.2Runtime類
Runtime類中提供了一個(gè)exec()方法,該方法用于執(zhí)行一個(gè)dos命令,從而實(shí)現(xiàn)和在命令行窗口中輸入dos命令同樣的效果。例程6-13中,調(diào)用了Runtime對(duì)象的exec()方法,并將系統(tǒng)命令"notepad.exe"作為參數(shù)傳遞給方法。運(yùn)行程序會(huì)在桌面上打開(kāi)一個(gè)記事本6.2System類與
Runtime類
6.2.2Runtime類
接下來(lái)通過(guò)一個(gè)案例來(lái)實(shí)現(xiàn)打開(kāi)的記事本并在3秒后自動(dòng)關(guān)閉例程6-14中,通過(guò)調(diào)用Process對(duì)象的destroy()方法,將打開(kāi)的記事本關(guān)閉了。為了突出演示的效果,使用了Thread類的靜態(tài)方法sleep(longmillis)使程序休眠了3秒,因此,程序運(yùn)行后,會(huì)看到打開(kāi)的記事本在3秒后自動(dòng)關(guān)閉了。6.2System類與
Runtime類
6.3Math類與
Random類6.3.1Math類Math類是數(shù)學(xué)操作類,提供了一系列用于數(shù)學(xué)運(yùn)算的靜態(tài)方法,包括求絕對(duì)值、三角函數(shù)等。Math類中有兩個(gè)靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量π和e。6.3Math類與
Random類6.3.1Math類生成驗(yàn)證碼:6.3.2Random類在JDK的java.util包中有一個(gè)Random類,它可以在指定的取值范圍內(nèi)隨機(jī)產(chǎn)生數(shù)字。6.3Math類與
Random類6.3.2Random類從運(yùn)行結(jié)果可以看出,例程6-16運(yùn)行兩次產(chǎn)生的隨機(jī)數(shù)序列是不一樣的。這是因?yàn)楫?dāng)創(chuàng)建Random的實(shí)例對(duì)象時(shí),沒(méi)有指定種子,系統(tǒng)會(huì)以當(dāng)前時(shí)鐘作為種子,產(chǎn)生隨機(jī)數(shù)。6.3Math類與
Random類6.3.2Random類接下來(lái)將例程6-16稍作修改,采用第二種構(gòu)造方法產(chǎn)生隨機(jī)數(shù)從運(yùn)行結(jié)果可以看出,當(dāng)創(chuàng)建Random類的實(shí)例對(duì)象時(shí),如果指定了相同的種子,則每個(gè)實(shí)例對(duì)象產(chǎn)生的隨機(jī)數(shù)具有相同的序列。6.3Math類與
Random類6.3.2Random類相對(duì)于Math的random()方法而言,Random類提供了更多的方法來(lái)生成各種偽隨機(jī)數(shù)。6.3Math類與
Random類6.3.2Random類模擬中國(guó)體育彩票36選7:6.3Math類與
Random類6.3.2Random類Random的nextInt(intn)方法可以生成一個(gè)[0,100)區(qū)間的隨機(jī)整數(shù)。在[0,100)區(qū)間共有100個(gè)整數(shù),每個(gè)數(shù)字出現(xiàn)的概率都是1%。按照這個(gè)理論即可實(shí)現(xiàn)以一定概率執(zhí)行某一程序。示例:模擬QQ農(nóng)場(chǎng),按照一定概率獲得莊稼種子。6.3Math類與
Random類6.4包裝類在Java中,很多類的方法都需要接收引用類型的對(duì)象,此時(shí)就無(wú)法將一個(gè)基本數(shù)據(jù)類型的值傳入。為了解決這樣的問(wèn)題,JDK中提供了一系列的包裝類,通過(guò)這些包裝類可以將基本數(shù)據(jù)類型的值包裝為引用數(shù)據(jù)類型的對(duì)象。表中列舉了八種基本數(shù)據(jù)類型及其對(duì)應(yīng)的包裝類。其中,除了Integer和Character類,其它包裝類的名稱和基本數(shù)據(jù)類型的名稱一致,只是類名的第一個(gè)字母大寫(xiě)即可。6.4包裝類包裝類和基本數(shù)據(jù)類型在進(jìn)行轉(zhuǎn)換時(shí),引入了裝箱和拆箱的概念,其中裝箱是指將基本數(shù)據(jù)類型的值轉(zhuǎn)為引用數(shù)據(jù)類型,反之,拆箱是指將引用數(shù)據(jù)類型的對(duì)象轉(zhuǎn)為基本數(shù)據(jù)類型。例程6-19演示了包裝類Integer的裝箱過(guò)程,在創(chuàng)建Integer對(duì)象時(shí),將int類型的變量a作為參數(shù)傳入,從而轉(zhuǎn)為Integr類型。由于Object類是所有類的父類,因此,第5行代碼通過(guò)調(diào)用toString()方法,成功將Integer的值以字符串的形式打印出來(lái)。6.4包裝類Integer類除了具有Object類的所有方法外,還有一些特有的方法:表中列舉了Integer的常用方法,其中的“intValue()”方法可以將Integer類型的值轉(zhuǎn)為int類型,這個(gè)方法可以用來(lái)進(jìn)行拆箱例程6-20演示了拆箱的過(guò)程,Integer對(duì)象通過(guò)調(diào)用intValue()方法,將Integer對(duì)象轉(zhuǎn)為int類型,從而可以與int類型的變量a進(jìn)行加法運(yùn)算,最終將運(yùn)算結(jié)果正確打印。6.4包裝類接下來(lái)通過(guò)一個(gè)案例實(shí)現(xiàn)在屏幕上打印“*”矩形,其中寬和高由運(yùn)行時(shí)傳入的參數(shù)來(lái)決定。在運(yùn)行例程6-21時(shí),需要傳入?yún)?shù)寬和高,具體命令如下:在例程6-21中,程序運(yùn)行時(shí)從鍵盤(pán)輸入了兩個(gè)參數(shù),其中第一個(gè)參數(shù)作為矩形的寬度,第二個(gè)參數(shù)作為矩形的高度,由于鍵盤(pán)輸入的參數(shù)都是字符串類型,不能直接使用,因此,通過(guò)調(diào)用包裝類Integer的parseInt()方法將字符串轉(zhuǎn)為整數(shù),從而實(shí)現(xiàn)了矩形的打印。6.4包裝類在使用包裝類時(shí),需要注意以下幾點(diǎn):包裝類都重寫(xiě)了Object類中的toString()方法,以字符串的形式返回被包裝的基本數(shù)據(jù)類型的值。除了Character外,包裝類都有valueOf(Strings)方法,可以根據(jù)String類型的參數(shù)創(chuàng)建包裝類對(duì)象,但參數(shù)字符串s不能為null,而且字符串必須是可以解析為相應(yīng)基本類型的數(shù)據(jù),否則雖然編譯通過(guò),但運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。除了Character外,包裝類都有parseXXX(Strings)的靜態(tài)方法,將字符串轉(zhuǎn)換為對(duì)應(yīng)的基本類型的數(shù)據(jù)。參數(shù)s不能為null,而且同樣必須是可以解析為相應(yīng)基本類型的數(shù)據(jù),否則雖然編譯通過(guò),但運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。6.5Date類、Calendar類
與DateFormat類6.5.1Date類在JDK的java.util包中提供了一個(gè)Date類用于表示日期和時(shí)間。Date類中大部分構(gòu)造方法都被聲明為已過(guò)時(shí),只有兩個(gè)構(gòu)造方法是建議使用的,一個(gè)是無(wú)參的構(gòu)造方法Date(),用來(lái)創(chuàng)建當(dāng)前日期時(shí)間的Date對(duì)象。另一個(gè)是接收一個(gè)long型參數(shù)date的構(gòu)造方法Date(longdate),用于創(chuàng)建指定時(shí)間的Date對(duì)象,其中date參數(shù)表示1970年1月1日0時(shí)0分0(稱為歷元)以來(lái)的毫秒數(shù),即時(shí)間戳。6.5.1Date類例程6-22中,打印date1得到的是當(dāng)前計(jì)算機(jī)的日期和時(shí)間,打印date2則是自1970年1月1日00:00:00以來(lái)966666666666l毫秒后的日期和時(shí)間。因此,大家可以根據(jù)需求選擇不同的方式創(chuàng)建Date對(duì)象。6.5Date類、Calendar類
與DateFormat類6.5.2Calender類Calendar類用于完成日期和時(shí)間字段的操作,它可以通過(guò)特定的方法設(shè)置和讀取日期的特定部分,比如年、月、日、時(shí)、分和秒等。Calendar類是一個(gè)抽象類,不可以被實(shí)例化,在程序中需要調(diào)用其靜態(tài)方法getInstance()來(lái)得到一個(gè)Calendar對(duì)象,然后調(diào)用其相應(yīng)的方法,具體示例如下:最常用的方法是Date
getTime(),返回代表當(dāng)前時(shí)間的Date對(duì)象。6.5Date類、Calendar類
與DateFormat類6.5.2Calender類利用Calender類獲取當(dāng)前計(jì)算機(jī)的日期和時(shí)間:例程6-23中,調(diào)用Calendar的getInstance()方法創(chuàng)建一個(gè)代表默認(rèn)時(shí)區(qū)內(nèi)當(dāng)前時(shí)間的Calendar對(duì)象。然后調(diào)用該對(duì)象的get(intfield)方法,通過(guò)傳入不同的常量字段值來(lái)分別得到日期、時(shí)間各個(gè)字段的值,特別需要注意的是,獲取的Calendar.MONTH字段值需要加1才表示當(dāng)前時(shí)間的月份。6.5Date類、Calendar類
與DateFormat類6.5.2Calender類通過(guò)調(diào)用Calendar類的set()和add()方法來(lái)實(shí)現(xiàn)上述過(guò)程:例程6-24中調(diào)用Calendar的set()方法將日期設(shè)置為2008年8月8號(hào),然后調(diào)用add()方法在Calendar.Date字段上增加100,從第10行的打印結(jié)果可以看出,增加100天的日期為2008年11月16日。6.5Date類、Calendar類
與DateFormat類6.5.3DateFormat類如果要將Date對(duì)象表示的日期以指定的格式輸出,例如輸出中文格式的時(shí)間,就需要用到DateFormat類。DateFormat類專門(mén)用于將日期格式化為字符串或者將用特定格式顯示的日期字符串轉(zhuǎn)換成一個(gè)Date對(duì)象。DateFormat是抽象類,不能被直接實(shí)例化,但它提供了靜態(tài)方法,通過(guò)這些方法可以獲取DateFormat類的實(shí)例對(duì)象,并調(diào)用其它相應(yīng)的方法進(jìn)行操作。在DateFormat類中定義了四個(gè)常量值用于作為參數(shù)傳遞給這些方法,其中包括FULL、LONG、MEDI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年地鐵維修考試試題及答案
- 山東單招物理試題及答案
- 安徒生故事測(cè)試題及答案
- 投資崗位筆試題庫(kù)及答案
- 2025年綿陽(yáng)中學(xué)初中題庫(kù)及答案
- 化學(xué)實(shí)驗(yàn)探究能力(設(shè)計(jì)驗(yàn)證性實(shí)驗(yàn))水平測(cè)評(píng)試題
- 化學(xué)常數(shù)(如NA)記憶與應(yīng)用試題
- 古代廚師的考試題及答案
- 公衛(wèi)助理考試題及答案
- 2025年安徽國(guó)企筆試真題及答案
- 旅游業(yè)導(dǎo)游或相關(guān)工作證明(8篇)
- T/CSWSL 002-2018發(fā)酵飼料技術(shù)通則
- 電氣設(shè)備運(yùn)行與檢修-課件 實(shí)操課件 變壓器分接開(kāi)關(guān)調(diào)整
- 缺血性腦卒中靜脈溶栓護(hù)理
- 珠寶營(yíng)業(yè)員銷售接待流程
- 紀(jì)檢比武試題答案及
- 形體訓(xùn)練24課件
- 輸電線路水泥桿加固防腐施工方案
- 新版醫(yī)療器械管理制度零售單體藥店
- 學(xué)校裝飾裝修工程施工方案
- 山體公園施工方案
評(píng)論
0/150
提交評(píng)論