版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο驤AVA語(yǔ)言程序設(shè)計(jì)信息科學(xué)與技術(shù)學(xué)院 網(wǎng)絡(luò)工程系 周文峰Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.第1頁(yè),共66頁(yè)。第五章 常用系統(tǒng)類(lèi) 主要任務(wù): 介紹Java常用的系統(tǒng)類(lèi),包括字符串類(lèi)、輸入輸出流類(lèi)、 Java Applet類(lèi)、數(shù)學(xué)函數(shù)類(lèi)、日期類(lèi)、隨機(jī)數(shù)類(lèi)以及向量類(lèi)等。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .
2、Copyright 2004-2011 Aspose Pty Ltd.2第2頁(yè),共66頁(yè)。 主要內(nèi)容字符串類(lèi)String類(lèi)StringBuffer類(lèi)和StringBuilder類(lèi)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.3第3頁(yè),共66頁(yè)。 5.1 字符串類(lèi)字符與字符串的區(qū)別字符是指用單引號(hào)括起來(lái)單個(gè)字符,如a、b、A等。這里的字符不是指占1個(gè)字節(jié)的ASCII字符,而是指占2個(gè)字節(jié)的Unicode字符。因?yàn)閁nicode被設(shè)
3、計(jì)用來(lái)處理現(xiàn)在世界上所有書(shū)面語(yǔ)言中的字符,所以一個(gè)漢字也是被當(dāng)作一個(gè)字符來(lái)處理的。對(duì)于單個(gè)字符,除了有char這個(gè)原始類(lèi)型以外,Java平臺(tái)中的java.lang包還專(zhuān)門(mén)提供了一個(gè)Character類(lèi)來(lái)進(jìn)行儲(chǔ)存和操作。 在計(jì)算機(jī)科學(xué)領(lǐng) 域中,Unicode(統(tǒng)一碼、萬(wàn)國(guó) 碼、單一碼、標(biāo)準(zhǔn)萬(wàn)國(guó)碼)是業(yè)界的一種標(biāo)準(zhǔn)。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.4第4頁(yè),共66頁(yè)。 5.1 字符串類(lèi)字符串是程序設(shè)計(jì)中經(jīng)常用到的數(shù)據(jù)結(jié)
4、構(gòu),很多編程語(yǔ)言將字符串定義為基本數(shù)據(jù)類(lèi)型。但在Java語(yǔ)言中,字符串被定義為類(lèi),必須先生成類(lèi)的實(shí)例對(duì)象然后才能使用。常用有兩種類(lèi)型的字符串:一種是創(chuàng)建以后不需要改變的,稱(chēng)為字符串常量,在Java中,String類(lèi)用于存儲(chǔ)和處理字符串常量;另外一種字符串是創(chuàng)建以后,需要對(duì)其進(jìn)行改變的,稱(chēng)為字符串變量,在Java中,StringBuffer類(lèi)用于存儲(chǔ)和操作字符串變量。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.5第5頁(yè),共66頁(yè)
5、。字符串與字符串類(lèi)字符串是一個(gè)完整的字符序列,可以包含字母、數(shù)字和其它符號(hào)。在Java中,用雙引號(hào)括起來(lái)的字符串是字符串常量,又稱(chēng)為無(wú)名字符串對(duì)象,由Java自動(dòng)創(chuàng)建。字符串常量可以賦給任何一個(gè)String對(duì)象引用,這樣處理從表面上看起來(lái)和其它編程語(yǔ)言沒(méi)有大的差別,照顧了程序員的習(xí)慣,但實(shí)際上存在著較大的差異。無(wú)論何時(shí),Java中的字符串都是以對(duì)象的面孔出現(xiàn)的,在運(yùn)行時(shí)要為它分配內(nèi)存空間,創(chuàng)建對(duì)象引用。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspos
6、e Pty Ltd.6第6頁(yè),共66頁(yè)。Java將字符串定義為類(lèi)有哪些好處呢?首先,在任何系統(tǒng)平臺(tái)上都能保證字符串本身以及對(duì)字符串的操作是一致的。對(duì)于網(wǎng)絡(luò)環(huán)境,這一點(diǎn)是至關(guān)重要的。其次,String和StringBuffer經(jīng)過(guò)了精心設(shè)計(jì),其功能是可以預(yù)見(jiàn)的。為此,二者都被說(shuō)明為最終類(lèi),不能派生子類(lèi),以防用戶(hù)修改其功能。最后,String和StringBuffer類(lèi)在運(yùn)行時(shí)要經(jīng)歷嚴(yán)格的邊界條件檢驗(yàn),它們可以自動(dòng)捕獲異常,提高了程序的健壯性。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyri
7、ght 2004-2011 Aspose Pty Ltd.7第7頁(yè),共66頁(yè)。5.1字符串類(lèi)字符串對(duì)象字符串長(zhǎng)度及查找字符串的連接及子串字符串常量與比較String對(duì)象的不變性命令行參數(shù)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.8第8頁(yè),共66頁(yè)。5.1.1 字符串類(lèi)Java語(yǔ)言提供了三個(gè)字符串類(lèi):String類(lèi)、StringBuffer類(lèi)和StringBuilder類(lèi)。String類(lèi)是不變字符串,StringBuffer和
8、StringBuilder是可變字符串,這3種字符串都是16位(2個(gè)字節(jié))的Unicode字符序列,并且這3個(gè)類(lèi)都被聲明為final,因此不能被繼承。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.9第9頁(yè),共66頁(yè)。5.1.1 字符串類(lèi) Java語(yǔ)言用String類(lèi)表示字符串。一般使用String類(lèi)的構(gòu)造方法創(chuàng)建一個(gè)字符串對(duì)象。String類(lèi)有13個(gè)重載的構(gòu)造方法,可以生成一個(gè)空字符串,也可以由字符或字節(jié)數(shù)組生成字符串。Str
9、ing類(lèi)常用的構(gòu)造方法如下: public String()/ 空字符序列構(gòu)造字符串對(duì)象public String(char value)/字符數(shù)組構(gòu)造字符串對(duì)象Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10第10頁(yè),共66頁(yè)。5.1.1 字符串類(lèi)public String(char value, int offset, int count)/字符數(shù)組的子數(shù)組public String(byte bytes )/byte數(shù)組
10、構(gòu)造字符串對(duì)象 public String(byte bytes, int offset, int length)public String(String original)/構(gòu)造一個(gè)original的副本 public String(StringBuffer buffer)public String(StringBuilder buffer)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.11第11頁(yè),共66頁(yè)。5.1.1 字符
11、串類(lèi)例如:char chars1=A,B,C;char chars2=中,國(guó),;String s1=new String(chars1);String s2=new String(chars2, 0, 4);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.12第12頁(yè),共66頁(yè)。5.1.1 字符串類(lèi)在Java中,還有一種特殊的創(chuàng)建String對(duì)象的方法,這種方法是直接利用字符串常量創(chuàng)建字符串對(duì)象,例如: String s=“Thi
12、s is a Java string.” ; Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.13第13頁(yè),共66頁(yè)。常量串存儲(chǔ)在串池中。編譯時(shí),每當(dāng)碰到一個(gè)常量串,JVM就會(huì)在串池中搜索,如果此串存在,則直接使用這個(gè)現(xiàn)成的串;如果沒(méi)有,就在串池中創(chuàng)建一個(gè)新串。String x=“abcd”;String y=“abcd”;String z=“1234”;xyz串池對(duì)象:”abcd”對(duì)象:”1234” x,y,z并不是真正的對(duì)象,
13、只是指向?qū)ο蟠鎯?chǔ)位置的引用。(C語(yǔ)言中稱(chēng)為指針)棧內(nèi)存 搜索沒(méi)找到找到nullnullnull字符串的內(nèi)存分配(字符串常量)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.14第14頁(yè),共66頁(yè)。字符串變量與字符串常量不存儲(chǔ)在同樣的位置。字符串的內(nèi)存分配(創(chuàng)建串對(duì)象)String x=new String(“abcd”);x對(duì)象:”abcd”對(duì)象:”abcd”其它常量對(duì)象串池null搜索找到復(fù)制棧內(nèi)存 堆內(nèi)存 Evaluation
14、 only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.15第15頁(yè),共66頁(yè)。5.1.2 字符串長(zhǎng)度及查找創(chuàng)建String類(lèi)對(duì)象外,更常用的是調(diào)用String類(lèi)的方法,該類(lèi)定義了許多方法。public int length() 返回字符串的長(zhǎng)度,即字符串包含的字符個(gè)數(shù)。注意對(duì)含有漢字和其他語(yǔ)言符號(hào)的字符串,計(jì)算長(zhǎng)度時(shí),一個(gè)符號(hào)作為一個(gè)字符計(jì)數(shù)。例如獲取字符串“MingRiSoft”長(zhǎng)度的代碼如下:String nameStr = MingRiSoft;in
15、t i = nameStr.length();/ 獲得字符串的長(zhǎng)度為10Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.16第16頁(yè),共66頁(yè)。5.1.2 字符串長(zhǎng)度及查找 public int indexOf(int ch)查找字符ch第一次出現(xiàn)的位置。如果查找不成功則返回-1。 public int indexOf(int ch, int fromIndex )查找字符ch從fromIndex開(kāi)始第一次出現(xiàn)的位置(在原字符串中
16、的下標(biāo))。 String str = mingrikeji;int i = str.indexOf(i);System.out.println(字符i第一次出現(xiàn)在索引: + i); / 索引值是1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.17第17頁(yè),共66頁(yè)。5.1.2 字符串長(zhǎng)度及查找 public int indexOf(String str)查找字符串str第一次出現(xiàn)的位置。如果查找不成功則返回-1。 public
17、int indexOf(String str, int fromIndex )查找字符串str從fromIndex開(kāi)始第一次出現(xiàn)的位置(在原字符串中的下標(biāo))。String str = mingrikeji;i = str.IndexOf(ri);System.out.println(“字符串“ri”第一次出現(xiàn)在索引: + i); / 索引值是4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.18第18頁(yè),共66頁(yè)。5.1.2 字符
18、串長(zhǎng)度及查找 public int lastIndexOf(int ch)查找字符ch最后一次出現(xiàn)的位置。 public int lastIndexOf(int ch, int endIndex)查找字符ch到endIndex為止最后一次出現(xiàn)的位置。String str = mingrikeji;i = str.lastIndexOf(i);System.out.println(字符i最后一次出現(xiàn)在索引: + i); / 索引值是9i = str.lastIndexOf(i, 4);System.out.println(“到第4個(gè)字符為止,字符i最后一次出現(xiàn)在索引: + i);/ 索引值是1E
19、valuation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.19第19頁(yè),共66頁(yè)。5.1.2 字符串長(zhǎng)度及查找 public int lastIndexOf(String str)查找字符串str最后一次出現(xiàn)的位置。 public int lastIndexOf(String str, int endIndex)查找字符串str到endIndex為止最后一次出現(xiàn)的位置(在原字符串中的下標(biāo))。String str = mingrikeji;i
20、= str.lastIndexOf(ri);System.out.println(“字符串ri最后一次出現(xiàn)在索引: + i); / 索引值是4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.20第20頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 public String concat(String str)調(diào)用字符串與參數(shù)字符串連接起來(lái),產(chǎn)生一個(gè)新的字符串。 public String substring(int beginIn
21、dex, int endIndex)從字符串的下標(biāo)beginIndex開(kāi)始到endIndex結(jié)束產(chǎn)生一個(gè)子字符串。(不包含endIndex處的字符) public String substring(int beginIndex)從字符串的下標(biāo)beginIndex開(kāi)始到結(jié)束產(chǎn)生一個(gè)子字符串。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.21第21頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 public char charAt(i
22、nt index)返回字符串中指定位置的字符,index表示位置,范圍為0s.length()-1。 public String replace(char oldChar, char newChar)將調(diào)用字符串中的所有oldChar字符改變?yōu)閚ewChar字符,返回一個(gè)新的字符串。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.22第22頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 public String toUpperCa
23、se() public String toLowerCase()將字符串轉(zhuǎn)換成大寫(xiě)或小寫(xiě)字母。 public boolean startsWith(String prefix) public boolean endsWith(String suffix)返回字符串是否以某個(gè)字符串開(kāi)始或結(jié)尾。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.23第23頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 public void getChar
24、s(int srcBegin, int srcEnd, char dst, int dstBegin)將字符串中從起始位置(srcBegin)到結(jié)束位置(srcEnd)之間的字符復(fù)制到字符數(shù)組dst中從起始位置為dstBegin。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.24第24頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串下面的程序說(shuō)明了String對(duì)象的使用。 String s=new String(This is a
25、Java string.) ; System.out.println(s.length(); / 22 System.out.println(s.charAt(10); / J System.out.println(s.lastIndexOf(a); / 13 System.out.println(s.lastIndexOf(a,10); / 8 System.out.println(s.indexOf(is); / 2Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2
26、011 Aspose Pty Ltd.25第25頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 String s=new String(This is a Java string.) ; System.out.println(s.lastIndexOf(is); / 5 System.out.println(s.indexOf(my); / -1 char subs=new char4; s.getChars(10,14,subs,0); System.out.println(subs); /JavaEvaluation only.Created with Aspose.Slides for .
27、NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.26第26頁(yè),共66頁(yè)。5.1.3 字符串的連接與子串 String s=new String(This is a Java string.) ; String s1=Its interesting.; s1=s.concat(s1); System.out.println(s.toUpperCase(); /THIS IS A JAVA STRING. System.out.println(s1.toLowerCase(); /this is a java string.it
28、s interesting. System.out.println(s.endsWith(in); /falseEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.27第27頁(yè),共66頁(yè)。5.1.4 字符串解析String類(lèi)提供了一個(gè)split()方法,它用來(lái)實(shí)現(xiàn)將一個(gè)字符串分解成子字符串或令牌(token)。該方法使用正則表達(dá)式指定分隔符public String split(String regex, int limit) pub
29、lic String split(String regex) Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.28第28頁(yè),共66頁(yè)。public class SplitDemopublic static void main(String args)String ss=11,22,33;System.out.println(ss);String str=ss.split(,);System.out.println(str0);Sy
30、stem.out.println(str1);System.out.println(str2); Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.29第29頁(yè),共66頁(yè)。5.1.5 字符串常量與字符串比較在Java程序中,凡是由雙引號(hào)定界的字符序列都是字符串常量(literal string),如”abc”。 字符串常量存放在字符串常量池(pool of literal string)中。字符串常量也是String類(lèi)的對(duì)象,可以直
31、接使用,例如:System.out.println(Hello.length(); /結(jié)果輸出5 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.30第30頁(yè),共66頁(yè)。1.字符串相等的比較 你可能想到用“=”號(hào)來(lái)比較,如下代碼所示。String s1 = new String(Hello);String s2 = new String(Hello);System.out.println(s1=s2);5.1.5 字符串常量與字符
32、串比較Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.31第31頁(yè),共66頁(yè)。再看下面一段代碼: String s1 = “Hello” ; String s2 = “Hello” ; System.out.println(s1=s2); Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspos
33、e Pty Ltd.32第32頁(yè),共66頁(yè)。String str1 = abc;String str2 = abc;System.out.println(str1=str2); /true 字符串的比較str1str2串池對(duì)象:”abc”棧內(nèi)存 搜索找到nullnull沒(méi)找到Str1與str2存儲(chǔ)的是同一塊內(nèi)存地址Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.33第33頁(yè),共66頁(yè)。String str1 =new String
34、 (abc);String str2 =new String (abc);System.out.println(str1= =str2); / false字符串的比較str2對(duì)象:”abc”對(duì)象:”abc”其它常量對(duì)象串池null搜索找到復(fù)制棧內(nèi)存 堆內(nèi)存 str1對(duì)象:”abc”nullstr1與str2存儲(chǔ)的是堆內(nèi)存中的不同地址Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.34第34頁(yè),共66頁(yè)。 如果要比較兩個(gè)對(duì)象的內(nèi)容是
35、否相等,可以使用String類(lèi)的equals()方法。對(duì)于上面兩種情況,表達(dá)式: s1.equals(s2); 的結(jié)果都為true,因?yàn)閟1、s2的內(nèi)容都相等。 例如比較字符串“A”和字符串“a”是否相等:注意:equals()方法在比較兩個(gè)字符串時(shí)區(qū)分字母大小寫(xiě)。String str = A;boolean b = str.equals(“a”);/ 比較結(jié)果b為falseEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.35第3
36、5頁(yè),共66頁(yè)。2. 字符串大小的比較 要比較字符串的大小,可以使用String類(lèi)的compareTo()方法,該方法的格式為: public int compareTo(String anotherString)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.36第36頁(yè),共66頁(yè)。 字符串比較使用字符的Unicode碼值進(jìn)行比較。若當(dāng)前字符串小于參數(shù)字符串時(shí),方法返回值小于0,若當(dāng)前字符串大于參數(shù)字符串時(shí),方法返回值大于0,若
37、當(dāng)前字符串等于參數(shù)字符串時(shí),方法返回值等于0。例如,表達(dá)式: “abc”.compareTo(“abd”)/返回值為-1。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.37第37頁(yè),共66頁(yè)。 對(duì)于字符串相等和大小比較還可以忽略大小寫(xiě),可以使用下面兩個(gè)方法:public boolean equalsIgnoreCase(String anotherString)public int compareToIgnoreCase(St
38、ring anotherString)注意,字符串不能使用、=、java ThreeInteger “23” “-234” “100” 程序運(yùn)行結(jié)果為: max=100 min=-234Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.46第46頁(yè),共66頁(yè)。 注意:命令行參數(shù)傳遞的是字符串,若將其作為數(shù)值處理,需要進(jìn)行轉(zhuǎn)換。若字符串中含有非數(shù)值字符,則拋出NumberFormatException運(yùn)行時(shí)異常。 根據(jù)傳遞的參數(shù)個(gè)數(shù)確
39、定數(shù)組args的長(zhǎng)度,如果給出的參數(shù)少于引用的元素,則拋出ArrayIndexOutOfBoundsException運(yùn)行時(shí)異常。 如D:java ThreeInteger “23” “-234”Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.47第47頁(yè),共66頁(yè)。5.2 StringBuilder和StringBuffer類(lèi)創(chuàng)建StringBuffer對(duì)象StringBuffer對(duì)象的訪問(wèn)和修改StringBuilder類(lèi)Ev
40、aluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.48第48頁(yè),共66頁(yè)。5.2.1 創(chuàng)建StringBuffer對(duì)象字符串緩沖區(qū)類(lèi)StringBuffer類(lèi)是字符串的另一種處理辦法。StringBuffer類(lèi)常用的構(gòu)造方法有下面三個(gè):public StringBuffer ()創(chuàng)建一個(gè)沒(méi)有字符的字符串緩沖區(qū),初始容量為16個(gè)字符。此時(shí)length()方法的值為0,而capacity()方法的值為16。 Evaluation only.
41、Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.49第49頁(yè),共66頁(yè)。public StringBuffer (int capacity)創(chuàng)建一個(gè)沒(méi)有字符的字符串緩沖區(qū),capacity為指定的初始容量。 public StringBuffer (String str)利用一個(gè)已存在的字符串對(duì)象str創(chuàng)建一個(gè)字符串緩沖區(qū)對(duì)象,另外再分配16個(gè)字符的緩沖區(qū)。 Evaluation only.Created with Aspose.Slides for .NET
42、3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.50第50頁(yè),共66頁(yè)。StringBuffer類(lèi)除定義了length()、charAt()、getChars()、indexOf()等方法外,還提供了下列常用方法:public int capacity() 返回當(dāng)前的字符串緩沖區(qū)的容量。public void setCharAt(int index, char ch)用ch修改指定位置的字符。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile
43、.Copyright 2004-2011 Aspose Pty Ltd.51第51頁(yè),共66頁(yè)。public StringBuffer deleteCharAt(int index)刪除指定位置的字符。public StringBuffer append(String str)向當(dāng)前的字符串的末尾添加一個(gè)字符串。該方法有一系列的重載方法,參數(shù)可以是boolean、char、int、long、 float、double、char等任何數(shù)據(jù)類(lèi)型。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyr
44、ight 2004-2011 Aspose Pty Ltd.52第52頁(yè),共66頁(yè)。public StringBuffer insert(int offset, String str)從當(dāng)前字符串的指定位置插入一個(gè)字符串。這個(gè)方法個(gè)也有多個(gè)重載的方法,參數(shù)可以是boolean、char、int、long、 float、double、char等類(lèi)型。public StringBuffer delete(int start, int end)刪除從start開(kāi)始到end(不包括end)之間的字符。Evaluation only.Created with Aspose.Slides for .NET
45、 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.53第53頁(yè),共66頁(yè)。public StringBuffer replace(int start, int end, String str)用字符串str替換從start開(kāi)始到end(不包括end)之間的字符。public StringBuffer reverse()將字符串的所有字符反轉(zhuǎn)。public StringBuffer substring(int start)返回從start開(kāi)始到字符串末尾的子字符串 Evaluation only.Created with Aspose
46、.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.54第54頁(yè),共66頁(yè)。public StringBuffer substring(int start, int end)返回從start開(kāi)始到end(不包括end)之間的子字符串。例:下面程序演示了StringBuffer對(duì)象及其方法的使用。 StringBuffer sb=new StringBuffer (Hello); System.out.println(sb);/Hello System.out.println(sb.length();/5
47、 System.out.println(sb.capacity(); /21Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.55第55頁(yè),共66頁(yè)。 sb.append(Java); System.out.println(sb); /HelloJava System.out.println(sb.insert(5,“,”); /Hello,Java System.out.println(sb.replace(6,10,World!
48、); / Hello,World! System.out.println(sb.reverse(); /!dlroW,olleH Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.56第56頁(yè),共66頁(yè)。5.2.3 StringBuilder類(lèi)StringBuilder類(lèi)與StringBuffer類(lèi)的區(qū)別是StringBuffer類(lèi)的實(shí)例是線程安全的,StringBuilder類(lèi)的實(shí)例不是線程安全的。如果需要線程同步,推薦使用Str
49、ingBuffer類(lèi)。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.57第57頁(yè),共66頁(yè)。習(xí)題1. 下列關(guān)于構(gòu)造方法描述錯(cuò)誤的是 。 A.Java語(yǔ)言規(guī)定構(gòu)造方法名與類(lèi)名必須相同; B.Java語(yǔ)言規(guī)定構(gòu)造方法沒(méi)有返回值,但不用void聲明; C.Java語(yǔ)言規(guī)定構(gòu)造方法不可以重載; D.Java語(yǔ)言規(guī)定構(gòu)造方法只能通過(guò)new自動(dòng)調(diào)用。2. 已知語(yǔ)句int a=1, 2, 3;下列描述錯(cuò)誤的是 。A.定義了一個(gè)名為a的一維數(shù)組
50、 B.數(shù)組a有3個(gè)元素C.數(shù)組a中每個(gè)元素都是整型D.數(shù)組元素a3的值為3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.58第58頁(yè),共66頁(yè)。習(xí)題3下列選項(xiàng)中,用于在定義子類(lèi)時(shí)聲明父類(lèi)名的關(guān)鍵字是 。A.interfaceB.packageC.extendsD.class4. 設(shè) i、j、k 為類(lèi) x 中定義的 int 型變量名,下列類(lèi) x 的構(gòu)造函數(shù)中不正確的是 。 A. x( int m) . B. void x( int
51、 m) . C. x( int m, int n) . D. x( int h,int m,int n) . 5.Java 和 c+都是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。( )6. 同一個(gè)類(lèi)中定義多個(gè)參數(shù)列表不同的同名方法,叫做方法的重載。( )Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.59第59頁(yè),共66頁(yè)。習(xí)題7.一個(gè)程序里可以有多個(gè)父類(lèi),也可以有多個(gè)主類(lèi)。()8.一個(gè)子類(lèi)可以重新定義從父類(lèi)那里繼承來(lái)的同名方法,而且允許它們有不同
52、的返回值。()9.Java application中的主類(lèi)需包含main方法,main方法的返回類(lèi)型是 。 A.int B.float C.double D.void 10.在類(lèi)的定義中可以有兩個(gè)同名方法,這種現(xiàn)象稱(chēng)為方法 。 A.封裝 B.繼承 C.覆蓋 D.重載Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.60第60頁(yè),共66頁(yè)。11. 下列程序的輸出結(jié)果是 。class Fpublic F() System.out.pri
53、nt(F() is called!); class S extends Fpublic S() System.out.print(S() is called!); public class Expublic static void main(String args)S sa=new S();A)F() is called! B)S() is called!C)F() is called! S() is called! D)S() is called! F() is called!Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.61第61頁(yè),共66頁(yè)。習(xí)題12.現(xiàn)有類(lèi)說(shuō)明如下:classAintx=10;intGetA()returnx;classBextendsAintx=100;intGetB () returnx;問(wèn)題:1)類(lèi)B是否能繼承類(lèi)A的屬性x?2)若b是類(lèi)B的對(duì)象,則b.GetB()的返回值是什么?3)若b是類(lèi)B的對(duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇科版八年級(jí)物理下冊(cè)《第八章力與運(yùn)動(dòng)》單元檢測(cè)卷及答案
- 人教版七年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)導(dǎo)學(xué)案
- 《誡子書(shū)》復(fù)習(xí)課
- 中小學(xué)機(jī)房作品管理系統(tǒng)的開(kāi)發(fā)與應(yīng)用研究
- 高一化學(xué)二第二章第二節(jié)化學(xué)能與電能練習(xí)
- 2024屆安徽省巢湖市某中學(xué)高考仿真模擬化學(xué)試卷含解析
- 2024高中地理第3章地理信息技術(shù)應(yīng)用第4節(jié)數(shù)字地球精練含解析湘教版必修3
- 2024高中物理第二章交變電流第六節(jié)變壓器達(dá)標(biāo)作業(yè)含解析粵教版選修3-2
- 2024高中語(yǔ)文第一單元以意逆志知人論世湘夫人訓(xùn)練含解析新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 綿陽(yáng)市高中2022級(jí)(2025屆)高三第二次診斷性考試(二診)歷史試卷(含答案)
- 《視頻壓縮基礎(chǔ)》課件
- 2025南方財(cái)經(jīng)全媒體集團(tuán)校園招聘63人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《A機(jī)場(chǎng)公司人力資源管理工作實(shí)踐調(diào)研報(bào)告》2600字(論文)
- 社工人才培訓(xùn)計(jì)劃實(shí)施方案
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 6、水平四+田徑18課時(shí)大單元計(jì)劃-《雙手頭上前擲實(shí)心球》
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 青島版科學(xué)四年級(jí)下冊(cè)課程綱要
- 部編人教版六年級(jí)下冊(cè)語(yǔ)文1-6單元作文課件
- NB/T 11434.5-2023煤礦膏體充填第5部分:膠凝材料技術(shù)要求
評(píng)論
0/150
提交評(píng)論