版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章基礎(chǔ)類庫(kù)和工具類庫(kù)1第6章基礎(chǔ)類庫(kù)和工具類庫(kù)引言我們很少見(jiàn)到一個(gè)家具廠要自己種樹(shù)、伐木來(lái)提供木材,也很少見(jiàn)五金廠自己通過(guò)冶煉來(lái)提供鋼材,但在以往的程序設(shè)計(jì)中,這種一切從頭開(kāi)始的做法卻是常見(jiàn)的。這種做法會(huì)帶來(lái)大量的重復(fù)工作,解決這一問(wèn)題的方法是軟件重用。面向?qū)ο蠹夹g(shù)是迄今為止提高軟件可重用性的最有效途徑,其中類和類的繼承機(jī)制為提高程序的可重用性提供了強(qiáng)有力的支持。Java有一個(gè)功能強(qiáng)大的資源庫(kù),通過(guò)類和類的繼承機(jī)制將資源庫(kù)中的資源組織起來(lái),Java將功能相關(guān)的類組織成包,使程序員可以很方便地使用資源庫(kù)。Java資源庫(kù)中類的繼承層次和包的組織呈樹(shù)型結(jié)構(gòu),Java資源庫(kù)的這種組織方式使程序員進(jìn)行Java編程時(shí)有“背靠大樹(shù)好乘涼”的感覺(jué)。2第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1Java基礎(chǔ)類Java的類庫(kù)是系統(tǒng)提供的已實(shí)現(xiàn)的標(biāo)準(zhǔn)類的集合,是Java編程的API(ApplicationProgramInterface),它可以幫助開(kāi)發(fā)者方便、快捷地開(kāi)發(fā)Java程序。這些系統(tǒng)定義好的類根據(jù)實(shí)現(xiàn)的功能不同,可以劃分成不同的集合,每個(gè)集合是一個(gè)包,合稱為類庫(kù)。
Java的類庫(kù)大部分是由它的發(fā)明者——SUN公司提供的,這些類庫(kù)稱為基礎(chǔ)類庫(kù)(JFC)。API應(yīng)用程序編程接口面向過(guò)程語(yǔ)言–函數(shù)庫(kù)(子程序包)面向?qū)ο笳Z(yǔ)言–類庫(kù)3第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1.1基礎(chǔ)類庫(kù)類庫(kù)的結(jié)構(gòu)java.lang語(yǔ)言基礎(chǔ)類庫(kù)(System、Math、Thread、基本數(shù)據(jù)類型類)java.utilJava的工具類庫(kù)(向量、棧、日期)java.ioJava的標(biāo)準(zhǔn)輸入輸出類庫(kù)java.applet用于實(shí)現(xiàn)JavaApplet小程序的類庫(kù)java.awt用于構(gòu)建圖形用戶界面的類庫(kù)java.awt.event界面用戶交互控制和事件響應(yīng)類庫(kù)java.awt.image用于處理和操縱來(lái)自網(wǎng)上的圖片Java的用于實(shí)現(xiàn)網(wǎng)絡(luò)功能的類庫(kù)java.sql用于訪問(wèn)數(shù)據(jù)庫(kù)的類庫(kù)使用JDKDocument查看類庫(kù)4第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1.2語(yǔ)言基礎(chǔ)類庫(kù)-Object類Java程序中所有類的直接或間接父類,也是類庫(kù)中所有類的的父類,所有的其他類都是從Object類派生。構(gòu)造方法:Object()一般方法:方法說(shuō)明equals()比較兩個(gè)對(duì)象是否相同,結(jié)果為一布爾值getClass()
返回一個(gè)對(duì)象在運(yùn)行時(shí)所對(duì)應(yīng)的類的表示toString()返回描述當(dāng)前對(duì)象的字符串信息Clone()生成并返回當(dāng)前對(duì)象的一個(gè)拷貝finalize()定義回收當(dāng)前對(duì)象時(shí)所需完成的清理工作5第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-1Object中定義的方法的使用publicclassBasicObjectDemo{ publicstaticvoidmain(String[]args){ Aa1=newA(); Aa2=newA(); Aa3=a1; Bb=newB(); System.out.println(a1.equals(a2)); System.out.println(a3.equals(a1)); System.out.println(a1.hashCode()); System.out.println(a1.toString()); }}classA{}classB{}falsetrueA@35ce366第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1.3語(yǔ)言基礎(chǔ)類庫(kù):數(shù)據(jù)類型類Java的數(shù)據(jù)類型及其對(duì)應(yīng)的基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型包裝類byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean在Java中,數(shù)據(jù)類型包裝類用于封裝基本數(shù)據(jù)類型的有關(guān)信息和操作。數(shù)據(jù)類型包裝類是由多個(gè)類組成的一個(gè)集合,每種基本數(shù)據(jù)類型均存在相應(yīng)的對(duì)象封裝類7第6章基礎(chǔ)類庫(kù)和工具類庫(kù)1.Character類構(gòu)造方法:publicCharacher(charvalue)例:Characherch=newCharacher('a');常用方法及說(shuō)明方法說(shuō)明isLowerCase(charch)判斷ch是否為小寫isUpperCase(charch)判斷ch是否為大寫isDigit(charch)判斷ch是否為數(shù)字isLetter(charch)判斷ch是否為字母toLowerCase(charch)返回小寫toUpperCase(charch)返回大寫Digit(charch,intradix)根據(jù)radix指定的進(jìn)制,返回ch所對(duì)應(yīng)的值8第6章基礎(chǔ)類庫(kù)和工具類庫(kù)2.Integer類構(gòu)造方法:publicInteger(intvalue) publicInteger(Strngs)throwsNumberFormatException
例:Integera=newInteger(1); Integera1=newInteger("1");方法說(shuō)明parseInt(Strings)將s轉(zhuǎn)換為帶符號(hào)十進(jìn)制整數(shù)valueOf(Strings)將s轉(zhuǎn)換為一個(gè)Integer對(duì)象,該對(duì)象對(duì)應(yīng)的int數(shù)值與字符串表示的數(shù)值一致類變量說(shuō)明MAX_VALUE規(guī)定了int類型的最大值MIN_VALUE規(guī)定了int類型的最小值常用類變量及說(shuō)明常用方法及說(shuō)明inti=Integer.parseInt(“888”);intj=Integer.valueOf(“111”).intValue();字符串與整形數(shù)據(jù)的轉(zhuǎn)化9第6章基礎(chǔ)類庫(kù)和工具類庫(kù)數(shù)據(jù)類型類IntegerInteger類的公用屬性方法。10第6章基礎(chǔ)類庫(kù)和工具類庫(kù)數(shù)據(jù)類型類IntegerInteger類的公用屬性常用方法??蛇M(jìn)行進(jìn)制轉(zhuǎn)換11第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例子:2進(jìn)制轉(zhuǎn)換!publicclassIntegerApp{publicstaticvoidmain(String[]arg){inti=Integer.valueOf("1234").intValue();System.out.println("十進(jìn)制數(shù)"+i+"對(duì)應(yīng)的二進(jìn)制數(shù)是:"+Integer.toBinaryString(i));System.out.println("十進(jìn)制數(shù)"+i+"對(duì)應(yīng)的十六進(jìn)制數(shù)是:"+Integer.toHexString(i));System.out.println("Integer對(duì)應(yīng)的基本類型是:"+Integer.TYPE.toString());System.out.println("Integer最大值為:"+Integer.MAX_VALUE);System.out.println("Integer最小值為:"+Integer.MIN_VALUE);}}12第6章基礎(chǔ)類庫(kù)和工具類庫(kù)運(yùn)行結(jié)果:十進(jìn)制數(shù)1234對(duì)應(yīng)的二進(jìn)制數(shù)是:10011010010十進(jìn)制數(shù)1234對(duì)應(yīng)的十六進(jìn)制數(shù)是:4d2Integer對(duì)應(yīng)的基本類型是:intInteger最大值為:2147483647Integer最小值為:-214748364813第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1.4語(yǔ)言基礎(chǔ)類庫(kù):System類java.io包中提供了多種輸入/輸出流,但是Java把最基本的輸入/輸出流類放在了java.lang.System類中。這個(gè)類提供了一個(gè)很重要的內(nèi)容——標(biāo)準(zhǔn)輸入/輸出流。標(biāo)準(zhǔn)輸入流用于從標(biāo)準(zhǔn)輸入設(shè)備輸入數(shù)據(jù);標(biāo)準(zhǔn)輸出流用于向標(biāo)準(zhǔn)輸出設(shè)備輸出數(shù)據(jù)。System類在聲明時(shí)使用了final關(guān)鍵字,而且該類中的所有方法和變量都是靜態(tài)的,因此該類不能被實(shí)例化或派生子類。要使用類變量。如:System.out。調(diào)用類的方法。如:System.getProperty(參數(shù))14第6章基礎(chǔ)類庫(kù)和工具類庫(kù)System類中保存了重要的全局函數(shù)和變量:System.err是標(biāo)準(zhǔn)錯(cuò)誤輸出流,用于輸出錯(cuò)誤信息。System.in是標(biāo)準(zhǔn)輸入流,其read方法提供了一種簡(jiǎn)便的數(shù)據(jù)讀取手段。這個(gè)方法可讀取用戶在鍵盤上輸入的字符。System.out是標(biāo)準(zhǔn)輸出流,它是java.io包中PrintStream類的一個(gè)對(duì)象,其println方法用于輸出數(shù)據(jù)。System.out.println(“HelloWorld!”)System.out.printlnSystem.out.print15第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-2:System類
classUserNameTest{publicstaticvoidmain(String[]args){ Stringname; name=System.getProperty("");
//調(diào)用getProperty方法,獲取機(jī)器的用戶名
System.out.println("用戶名:"+name);
//屏幕顯示用戶名
}}16第6章基礎(chǔ)類庫(kù)和工具類庫(kù)System類屬性publicstaticInputStreaminpublicstaticPrintStreamoutpublicstaticPrintStreamerr獲取系統(tǒng)信息、完成系統(tǒng)操作的方法publicstaticlongcurrentTimeMillis();
獲取自1970年1月1日零時(shí)至當(dāng)前系統(tǒng)時(shí)刻的微秒數(shù)
972370687290publicstaticvoidexit(intstatus);
強(qiáng)制Java虛擬機(jī)退出運(yùn)行狀態(tài),并把狀態(tài)信息status
返回給運(yùn)行虛擬機(jī)的操作系統(tǒng)。System.exit(0);publicstaticvoidgc();
強(qiáng)制調(diào)用Java虛擬機(jī)的垃圾回收功能。17第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.1.5語(yǔ)言基礎(chǔ)類庫(kù):Math類java.lang.Math類是標(biāo)準(zhǔn)的數(shù)學(xué)類,封裝了一些數(shù)學(xué)函數(shù)和常量。在這個(gè)類中,數(shù)的大小范圍跟具體的操作平臺(tái)有關(guān)。與System類相似,java.lang.Math類也不能被子類化或?qū)嵗?,因?yàn)樗乃蟹椒ê妥兞恳捕际庆o態(tài)的。二個(gè)類變量:類變量說(shuō)明E最接近自然對(duì)數(shù)的底(e)的double值PI最接近圓周率()的double值18第6章基礎(chǔ)類庫(kù)和工具類庫(kù)三角函數(shù)下面的三個(gè)方法接受一個(gè)double類型的且以弧度為單位的角度值,并返回相應(yīng)的運(yùn)算結(jié)果:sin(doublea)返回角度a的sin值。cos(doublea)返回角度a的cos值。tan(doublea)返回角度a的tan值。這些方法以double類型的值作為參數(shù)并返回相應(yīng)的三角運(yùn)算結(jié)果。下面的方法是反三角函數(shù):asin(doubler)返回sin值為r的角度值。acos(doubler)返回cos值為r的角度值。atan(doubler)返回tan值為r的角度值。19第6章基礎(chǔ)類庫(kù)和工具類庫(kù)pow(doubley,doublex)返回y的x次方例如,Math.pow(2.0,3.0)返回結(jié)果為8.0exp(doublex)返回x的底數(shù)log
(doublex)返回x的自然對(duì)數(shù)sqrt
(doublex)返回x的平方根Random()產(chǎn)生0-1之間隨機(jī)數(shù)舍入ceil(doublea)返回大于或等于a的最小整數(shù)值floor(doublea)返回小于或等于a的最大整數(shù)值round(floata)返回舍入尾數(shù)后最接近a的整型值20第6章基礎(chǔ)類庫(kù)和工具類庫(kù)多態(tài)方法:abs、min和max下面是幾個(gè)應(yīng)用于int、long、float和double類型的多態(tài)方法:abs(a)返回a的絕對(duì)值。max(a,b)返回a和b的最大值。min(a,b)返回a和b的最小值。21第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-3:math類的方法使用
importjava.lang.*;importjava.io.*;publicclassMathDemo{publicstaticvoidmain(Stringargs[]){System.out.println("Math.E="+Math.E);//輸出常量eSystem.out.println("Math.PI="+Math.PI);//輸出常量
System.out.println("ceil(E)="+Math.ceil(Math.E)); //輸出大于等于e的最小雙精度數(shù)
System.out.println("floor(E)="+Math.floor(Math.E)); //輸出小于等于e的最大雙精度數(shù)
System.out.println("rint(PI)="+Math.rint(Math.PI)); //將雙精度值
轉(zhuǎn)化為一個(gè)整數(shù)值
System.out.println("lnE="+Math.log(Math.E)); //計(jì)算e的自然對(duì)數(shù)值
System.out.println("sin(pi/4)="+Math.sin(Math.PI/4)); //計(jì)算
/4的正弦值22第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-3:math類的方法使用try{doublerand=Math.random();doublerand2=-Math.random();System.out.println("power("+rand+","+rand2+")="+Math.pow(rand,rand2));}//求冪
catch(ArithmeticExceptionex){System.out.println("ArithmeticExceptionoccured!");}}}
Math.E=2.7045Math.PI=3.1493ceil(E)=3.0floor(E)=2.0rint(PI)=3.0lnE=1.0sin(pi/4)=0.75475power(0.9726179323562354,-0.12166141769193639)=1.1202223第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.2字符串相關(guān)類6.2.1String類String類的特性是:字符串創(chuàng)建之后,字符的內(nèi)容就不能再變動(dòng)。1String有五個(gè)構(gòu)造方法:String();//生成一個(gè)空串。String(charchars[]);//從字符數(shù)組chars[]生成一個(gè)字符串。String(charchars[],intstartIndex,intnumChars);//從chars[]數(shù)組的startIndex位置開(kāi)始提取字符,共提取numChars個(gè)字符組成一個(gè)字符串。String(Stringvalue);//利用一個(gè)已存在的字符串常量生成一個(gè)字符串。String(StringBufferbuffer);//利用一個(gè)已存在的StringBuffer對(duì)象進(jìn)行初始化,生成一個(gè)字符串24第6章基礎(chǔ)類庫(kù)和工具類庫(kù)2生成字符串⑴charchars1[]={‘b’,’c’,’d’};⑵charchars2[]={‘a(chǎn)’,’b’,’c’,’d’,’e’};
⑶StringString1=newString(chars1);
⑷StringString2=newString(chars2,1,3);
語(yǔ)句1、2定義了2個(gè)字符數(shù)組;語(yǔ)句3從字符數(shù)組chars1[]生成一個(gè)字符串String1,其值為“bcd”;語(yǔ)句4從字符數(shù)組chars2[]生成一個(gè)字符串String2,其值為“bcd”(即從字符數(shù)組chars2的下標(biāo)為1的元素b開(kāi)始提取共3個(gè)字符組成字符串)。StringS=newString();//生成一個(gè)空字符串25第6章基礎(chǔ)類庫(kù)和工具類庫(kù)3創(chuàng)建對(duì)象(1)Strings3=newString("bcd");(2)Strings4=newString(s3);(3)StringBufferst=newStringBuffer("bcd");(4)Strings5=newString(st);直接定義字符串:StringaString=“Thisisastring.”;StringaString3=aString;采取這種方式定義的aString3和aString指向同一對(duì)象,即字符串“Thisisastring.”。采用new定義字符串:
StringaString4=newString(aString);這樣寫法將創(chuàng)建一個(gè)新的對(duì)象實(shí)體,其內(nèi)容和aString一模一樣。因此aString4所引用的字符串內(nèi)容雖然和aString相同,但是,實(shí)際上卻指向不同的對(duì)象實(shí)體。26第6章基礎(chǔ)類庫(kù)和工具類庫(kù)4String類處理字符串的方法字符串的合并:用操作符+實(shí)現(xiàn)比較兩個(gè)字符串的前綴或后綴是否相等的方法⑴
startsWith(StringPrefix);
//判斷當(dāng)前字符串是否是Prefix的前綴;
⑵ startsWith(StringPrefix,inttoffset);
//判斷當(dāng)前字符串的子串是否與Prefix相同;⑶ endsWith(Stringsuffix);
//判斷當(dāng)前字符串是否是Prefix的后綴。Strings1=“appletree”;s1.startsWith(“apple”);s1.startsWith(“tree”,5);s1.endsWith(“tree”);s1.endsWith(“Tree”);truefalse27第6章基礎(chǔ)類庫(kù)和工具類庫(kù)⑴indexOf(charch)//在當(dāng)前字符串中檢索指定字符首次出現(xiàn)的位置。⑵indexOf(charch,intfromIndex)//在當(dāng)前字符串中從指定位置開(kāi)始檢索指定字符首次出現(xiàn)的位置用indexOf方法來(lái)檢索指定的字符串。檢索方法的返回值均為字符所在位置的序號(hào)或所檢索的字符串首字符所在位置的序號(hào),如沒(méi)有檢索到,則返回值為-1。比如:Strings1=“WearestudingJava.”;s1.indexOf(’a’);s1.indexOf(’a’,5);s1.indexOf(“are”,1);方法lastIndexOf(charch)是在指定字符串中檢索某個(gè)指定字符最后出現(xiàn)的位置,用法和indexOf類似。字符串檢索的方法316328第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例:String類的toCharArray方法的使用。
classtoCharArray{publicstaticvoidmain(Stringargs[]){Strings1="Welikeapple.";char[]s2=s1.toCharArray();System.out.println(String.valueOf(s2,8,5));}}程序說(shuō)明:第3行定義了一個(gè)字符串s1;第4行使用toCharArray方法將字符串s1轉(zhuǎn)換為字符數(shù)組s2[];第5行使用valueOf方法將字符數(shù)組s2中的第8個(gè)字符開(kāi)始的5個(gè)字符即“apple”取出并打印輸出。
將字符串轉(zhuǎn)換成字符數(shù)組
結(jié)果為:apple29第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.2.2StringBuffer類
StringBuffer類用于處理可變的字符串,提供修改字符串的方法。生成StringBuffer對(duì)象后,可通過(guò)調(diào)用toString()方法將其轉(zhuǎn)換為String對(duì)象。StringBuffer有三個(gè)構(gòu)造方法:⑴
StringBuffer();⑵
StringBuffer(intlength);⑶
StringBuffer(Stringstr);示例:⑴
StringBuffers0=newStringBuffer();⑵StringBuffers1=newStringBuffer(512);⑶StringBuffers2=newStringBuffer(“Happynewyear!”);緩沖區(qū)尺寸byte16lengthStr長(zhǎng)度+1630第6章基礎(chǔ)類庫(kù)和工具類庫(kù)StringBuffer提供的方法實(shí)現(xiàn)對(duì)字符串的修改,包括字符替換、插入字符、在末尾添加一個(gè)子串等。原因就是它使用了緩沖區(qū)。從StringBuffer類創(chuàng)建的對(duì)象都分配比給定字符串還多16個(gè)字節(jié)長(zhǎng)度的緩沖區(qū)。StringBuffer類提供了方法來(lái)檢測(cè)和獲得緩沖區(qū)容量,在對(duì)字符修改過(guò)程中,如果緩沖區(qū)不夠用,那么,系統(tǒng)會(huì)自動(dòng)擴(kuò)大緩沖區(qū)。31第6章基礎(chǔ)類庫(kù)和工具類庫(kù)StringBuffer提供的主要方法:
字符設(shè)置和替換setCharAt(intindex,charch);此方法將指定的字符ch放到index指出的位置。例:StringBuffers=newStringBuffer(“stadents”);s.setCharAt(2,‘u’);上述語(yǔ)句將字符串s中第2個(gè)字符‘a(chǎn)’替換為‘u’。字符的插入insert(intoffset,charch);insert方法用來(lái)在字符串的指定位置插入字符ch。32第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-4:StringBuffer的insert方法的使用1
publicclassMyString{publicstaticvoidmain(Stringarg[]){Strings1="Wecome";StringBuffersb1=newStringBuffer(s1);sb1.insert(2,'l');System.out.println(sb1);}}程序結(jié)果:打印“Welcome”。33第6章基礎(chǔ)類庫(kù)和工具類庫(kù)StringBuffer的insert方法的使用2insert方法還允許插入字符串、布爾量、數(shù)組和各種類型的數(shù)據(jù),甚至插入一個(gè)對(duì)象。即按照入口參數(shù)的不同,StringBuffer提供了以下insert方法:insert(intoffset,charc);insert(intoffset,booleanb);insert(intoffset,charstr[]);insert(intoffset,doubled);insert(intoffset,floatf);insert(intoffset,inti);insert(intoffset,longl);insert(intoffset,Objectobj);insert(intoffset,Stringstr);
34第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-5:StringBuffer的insert方法實(shí)現(xiàn)多種插入
publicclassStringModify{publicstaticvoidmain(Stringstr[]){
StringBuffers=newStringBuffer("eacher!");booleanb=true;charc='T';doubled=3.14159;chare=',';charf[]={'W','e','l','c','o','m','e','!'};charg='!';System.out.println("insertachar:"+s.insert(0,c));s.insert(0,e);System.out.println("insertadouble:"+s.insert(0,d));s.insert(0,g);System.out.println("insertaArray:"+s.insert(0,f)); }}insertachar:Teacher!insertadouble:3.14159,Teacher!insertaArray:Welcome!!3.14159,Teacher!在第0個(gè)位置35第6章基礎(chǔ)類庫(kù)和工具類庫(kù)用append方法在字符串末尾添加內(nèi)容
隨著入口參數(shù)的不同,append方法可以用來(lái)添加字符串、各種類型的數(shù)據(jù)和數(shù)組等:append(booleanb);append(charc);append(charstr[]);append(charstr[],intoffset,intlen);append(doubled);append(floatf);append(inti);append(longl);append(Objectobj);append(Stringstr);36第6章基礎(chǔ)類庫(kù)和工具類庫(kù)classStringAppend{publicstaticvoidmain(Stringstr[]){StringBuffers=newStringBuffer("students");booleanb=true;charc=',';chard[]={'t','h','i','s','M','i','s','M'};System.out.println("appendachar:"+s.append(c));System.out.println("appendaarray:"+s.append(d));System.out.println("appendaboolean:"+s.append(b));}}例6-6:StringBuffer的append方法使用
程序運(yùn)行結(jié)果:Appendachar:students,Appendachar:students,thisisAppendachar:students,thisistrue37第6章基礎(chǔ)類庫(kù)和工具類庫(kù)toString
()方法將可變字符串轉(zhuǎn)化為不變字符串下面的程序段中用了append方法和toString方法,將字符串修改后轉(zhuǎn)化為字符串常量。charc='e';StringBuffers=newStringBuffer("Wear");s.append(c);s.append("students.");s.toString();結(jié)果:S成為字符串常量,其值為Wearestudent38第6章基礎(chǔ)類庫(kù)和工具類庫(kù)StringBuffer類提供了length()方法檢查緩沖區(qū)中字符串的長(zhǎng)度用charAt
(intindex)方法得到入口參數(shù)所指位置的字符用capacity()方法獲取緩沖區(qū)長(zhǎng)度。
publicclassMyString{publicstaticvoidmain(Stringargs[]){Strings1="Ilikeapple.";StringBuffersb1=newStringBuffer(s1);System.out.println(sb1.length());System.out.println(sb1.capacity());}}
程序說(shuō)明:由于s1字符串共含13個(gè)字符,所以,第4行語(yǔ)句將s1送到字符串緩沖區(qū)sb1后,由第5行打印語(yǔ)句打出的字符串長(zhǎng)度為13。實(shí)際上,sb1緩沖區(qū)長(zhǎng)度為13+16=29,因?yàn)橛胣ew關(guān)鍵字創(chuàng)建對(duì)象時(shí),為其分配的緩沖區(qū)長(zhǎng)度比實(shí)際字符數(shù)多16個(gè)字符長(zhǎng)度結(jié)果:132939第6章基礎(chǔ)類庫(kù)和工具類庫(kù)例6-7:StringBuffer的length、capacity、charAt方法使用
publicclassMyString{publicstaticvoidmain(Stringargs[]){Strings1="beautiful";StringBuffersb1=newStringBuffer(s1);System.out.println("第四個(gè)字符為:"+sb1.charAt(4));//取出對(duì)象第4個(gè)字符
System.out.println("length="+sb1.length());//返回對(duì)象的當(dāng)前長(zhǎng)度
System.out.println("capacity:"+sb1.capacity());//返回對(duì)象的整個(gè)容量}}結(jié)果:第四個(gè)字符為:tlength=9capacity:2540第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.2.3StringTokenizer作用:對(duì)字符串的解析和分割例6-8StringTokenizerimportjava.util.StringTokenizer;publicclassStringTokenizerDemo{ publicstaticvoidmain(String[]args){ Strings="demoofStringTokenizer"; StringTokenizertokenizer=newStringTokenizer(s,""); while(tokenizer.hasMoreTokens()){ System.out.println(tokenizer.nextToken()); } }}demoofStringTokenizer41第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.3日期和時(shí)間6.3.1日期類—Date構(gòu)造方法Date() //構(gòu)造一個(gè)系統(tǒng)時(shí)間的Data實(shí)例 Date(longdate) //構(gòu)造指定時(shí)間的Data實(shí)例方法getTime()//獲取自1970.1.1零時(shí)至當(dāng)前系統(tǒng)時(shí)刻的微秒數(shù) setTime() //設(shè)置新的時(shí)間intgetDate() //獲取系統(tǒng)當(dāng)前日期 after(Date) //比較是否遲于參數(shù)指定的日期 brfore(Date) //比較是否早于參數(shù)指定的日期42第6章基礎(chǔ)類庫(kù)和工具類庫(kù)6.3.2工具類庫(kù):CalendarCalendar(表示日期和時(shí)間)getInstance():得到表示當(dāng)前時(shí)間的實(shí)例get(int):獲取相應(yīng)信息,如get(Calendar.YEAR)set(int,int):如set(Calendar.YEAR,1999)set(year,month,date……):set用來(lái)設(shè)置信息Calendar.getTime():得到當(dāng)前時(shí)間的Date對(duì)象GregorianCalendar有不同的構(gòu)造方法,用來(lái)創(chuàng)建實(shí)例。如:GregorianCalender(year,month,date,…)43第6章基礎(chǔ)類庫(kù)和工具類庫(kù)日期類—Calendar抽象類,在Date對(duì)象和一組整數(shù)域之間進(jìn)行轉(zhuǎn)換:YEAR,MONTH,DAY,HOUR,…Calendarc=Calendar.getInstance();intc.get(Calendar.YEAR)intc.get(Calendar.MONTH)(1月為0)intc.get(Calendar.DATE)intc.get(Calendar.HOUR)intc.get(Calendar.MINUTE)intc.get(Calendar.SECOND)Datec.getTime()44第6章基
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水樣除油預(yù)處理工藝流程
- 分包合同爭(zhēng)端處理案例分析
- 技術(shù)服務(wù)合同風(fēng)險(xiǎn)防范策略
- 焊錫絲采購(gòu)合同簽訂雙方的合同執(zhí)行
- 學(xué)生個(gè)人嚴(yán)于律己勤奮學(xué)習(xí)保證書(shū)
- 全新員工忠誠(chéng)與權(quán)益保證
- 簡(jiǎn)化人力資源承包協(xié)議
- 銀行擔(dān)保合作協(xié)議
- 初中生文明行為保證書(shū)
- 商品交易合同案例
- 國(guó)家開(kāi)放大學(xué)《會(huì)計(jì)學(xué)概論》形考任務(wù)1-4參考答案
- 復(fù)合材料細(xì)觀力學(xué)課件
- 某工廠總配變電所及配電系統(tǒng)設(shè)計(jì)論文
- 學(xué)前融合教育的理想與現(xiàn)實(shí)課件
- 腎素-血管緊張素系統(tǒng)藥理課件
- 財(cái)政與金融基礎(chǔ)知識(shí)全套教學(xué)課件(中職)
- oppo其它-lpdt工作手冊(cè)
- 土傳病害的發(fā)生規(guī)律和危害課件
- 中醫(yī)診所規(guī)章制度(完整版)
- 職工董事選舉辦法
- 危險(xiǎn)性較大工程安全監(jiān)理制度
評(píng)論
0/150
提交評(píng)論