字符串和字符.ppt_第1頁
字符串和字符.ppt_第2頁
字符串和字符.ppt_第3頁
字符串和字符.ppt_第4頁
字符串和字符.ppt_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第11章 字符串和字符,教學(xué)目標(biāo): 創(chuàng)建和操作不可修改的String類的字符串對(duì)象 創(chuàng)建和操作可修改的StringBuffer類的字符串對(duì)象 創(chuàng)建和操作Character類的 對(duì)象 使用StringTokenizer對(duì)象將String對(duì)象分解為符號(hào) 教學(xué)重點(diǎn): 掌握以上類的具體應(yīng)用 教學(xué)難點(diǎn): 正則表達(dá)式,Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer Pattern類和Matcher類:Class java.util.re

2、gex,11.1 本章簡(jiǎn)介,字符是構(gòu)建Java源程序的基本構(gòu)建塊。字符常量是一個(gè)整數(shù)值,它表示為單引號(hào)中的字符。 字符串由一系列字符構(gòu)成,將這些字符視為一個(gè)單元。字符串可以包含字母、數(shù)字和各種特殊字符。字符串是String類的對(duì)象。字符串常量(以“匿名”的String對(duì)象形式存儲(chǔ)在內(nèi)存中)記為雙引號(hào)中的一系列字符。 String color=“blue”;,11.2 字符和字符串的基本知識(shí),11.3.1 String類構(gòu)造函數(shù) char charArray = b, i, r, t, h, , d, a, y ; byte byteArray = ( byte ) n, ( byte ) e,

3、 ( byte ) w, ( byte ) , ( byte ) y, ( byte ) e, ( byte ) a, ( byte ) r ; String s = new String( hello ); / use String constructors String s1 = new String(); String s2 = new String( s ); String s3 = new String( charArray ); String s4 = new String( charArray, 6, 3 ); String s5 = new String( byteArray,

4、 4, 4 ); String s6 = new String( byteArray );,11.3 String類,11.3.2 String類的方法 Int length() 返回此字符串的長(zhǎng)度。 Char charAt(intindex) 返回指定索引處的 char 值。 Void getChars(intsrcBegin, intsrcEnd, chardst, intdstBegin) 將字符從此字符串復(fù)制到目標(biāo)字符數(shù)組。,11.3.3 字符串比較 String s1 = new String( hello ); / s1 is a copy of hello String s2 =

5、 goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“hello”; 1、boolean equals(ObjectanObject) :比較此字符串與指定的對(duì)象。 if ( s1.equals( hello ) ) / true else ,String s1 = new String( hello ); / s1 is a copy of hello String s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birt

6、hday; String s5=“hello”; 2、=(比較引用時(shí),如果兩個(gè)對(duì)象引用指向內(nèi)存中的同一個(gè)對(duì)象,則比較結(jié)果為真;否則為假) if ( s1 = hello ) else if ( s5 = hello ) else ,String s1 = new String( hello ); / s1 is a copy of hello String s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“hello”; 3、boolean equalsIgnoreCase(Stri

7、nganotherString) 將此 String 與另一個(gè) String 進(jìn)行比較,不考慮大小寫。 if ( s3.equalsIgnoreCase( s4 ) ) / true output += s3 equals s4n; else output += s3 does not equal s4n;,String s1 = new String( hello ); / s1 is a copy of hello String s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“

8、hello”; 4、int compareTo(StringanotherString) 按字典順序比較兩個(gè)字符串。 output += pareTo( s2 ) is + pareTo( s2 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s4 ) is + pareTo( s4 ) + pareTo( s3 ) is + pareTo( s3 ) + nn;,String s1 = new String( hello ); / s1 is a copy of hello Strin

9、g s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“hello”; 5、boolean regionMatches(booleanignoreCase, inttoffset, Stringother, intooffset, intlen):測(cè)試兩個(gè)字符串區(qū)域是否相等。 boolean regionMatches(inttoffset, Stringother, intooffset, intlen) :測(cè)試兩個(gè)字符串區(qū)域是否相等。 if ( s3.regionMatches(

10、0, s4, 0, 5 ) ) output += First 5 characters of s3 and s4 matchn; else output += First 5 characters of s3 and s4 do not matchn; if ( s3.regionMatches( true, 0, s4, 0, 5 ) ) output += First 5 characters of s3 and s4 match; else output += First 5 characters of s3 and s4 do not match;,6、boolean startsW

11、ith(Stringprefix) 測(cè)試此字符串是否以指定的前綴開始。 boolean startsWith(Stringprefix, inttoffset) 測(cè)試此字符串是否以指定前綴開始,該前綴以指定索引開始。 boolean endsWith(Stringsuffix) 測(cè)試此字符串是否以指定的后綴結(jié)束。,11.3.4 定位字符串中的字符和子字符串 int indexOf(intch) 返回指定字符在此字符串中第一次出現(xiàn)處的索引。 Int indexOf(intch, intfromIndex) 從指定的索引開始搜索,返回在此字符串中第一次出現(xiàn)指定字符處的索引。 Int indexOf

12、(Stringstr) 返回第一次出現(xiàn)的指定子字符串在此字符串中的索引。 Int indexOf(Stringstr, intfromIndex) 從指定的索引處開始,返回第一次出現(xiàn)的指定子字符串在此字符串中的索引。,int lastIndexOf(intch) 返回最后一次出現(xiàn)的指定字符在此字符串中的索引。 Int lastIndexOf(intch, intfromIndex) 從指定的索引處開始進(jìn)行后向搜索,返回最后一次出現(xiàn)的指定字符在此字符串中的索引。 Int lastIndexOf(Stringstr) 返回在此字符串中最右邊出現(xiàn)的指定子字符串的索引。 Int lastIndexOf

13、(Stringstr, intfromIndex) 從指定的索引處開始向后搜索,返回在此字符串中最后一次出現(xiàn)的指定子字符串的索引。 返回的整數(shù)是最大值 k,它滿足: k = Math.min(fromIndex, str.length() letters.indexOf( “def”, 7 );返回的結(jié)果? letters.indexOf( hello );返回的結(jié)果? letters.lastIndexOf( “def”, 2); 返回的結(jié)果? letters.lastIndexOf( def, 17); 返回的結(jié)果?,11.3.5 提取字符串中的子字符串 String substring(

14、intbeginIndex) 返回一個(gè)新的字符串,它是此字符串的一個(gè)子字符串。 String substring(intbeginIndex, intendIndex) 返回一個(gè)新字符串,它是此字符串的一個(gè)子字符串。 beginIndex - 開始處的索引(包括)。 endIndex - 結(jié)束處的索引(不包括)。,11.3.6 字符串連接及其他方法 String concat(Stringstr) 將指定字符串聯(lián)到此字符串的結(jié)尾。 String replace(charoldChar, charnewChar) 返回一個(gè)新的字符串,它是通過用 newChar 替換此字符串中出現(xiàn)的所有 oldC

15、har 而生成的。 String toUpperCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為大寫。 String toLowerCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為小寫。 char toCharArray() 將此字符串轉(zhuǎn)換為一個(gè)新的字符數(shù)組。 String trim() 返回字符串的副本,忽略前導(dǎo)空白和尾部空白。,11.3.7 String類的valueOf方法 staticString valueOf(booleanb/ charc/doubled /floatf /inti /longl) 返回 boolean 參數(shù)

16、的字符串表示形式。 staticString valueOf(chardata) 返回 char 數(shù)組參數(shù)的字符串表示形式。 staticString valueOf(chardata, intoffset, intcount) 返回 char 數(shù)組參數(shù)的特定子數(shù)組的字符串表示形式。 staticString valueOf(Objectobj) 返回 Object 參數(shù)的字符串表示形式。 (fig11.9),11.4.1 StringBuffer類的構(gòu)造函數(shù) StringBuffer() 構(gòu)造一個(gè)其中不帶字符的字符串緩沖區(qū),其初始容量為 16 個(gè)字符。 StringBuffer(CharSe

17、quenceseq) 構(gòu)造一個(gè)字符串緩沖區(qū),它包含與指定的 CharSequence 相同的字符。 StringBuffer(intcapacity) 構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。 StringBuffer(Stringstr) 構(gòu)造一個(gè)字符串緩沖區(qū),并將其內(nèi)容初始化為指定的字符串內(nèi)容。,11.4.2 StringBuffer類的length、capacity、ensureCapacity方法 int length() 返回長(zhǎng)度(字符數(shù))。 int capacity() 返回當(dāng)前容量。 void setLength(intnewLength) 設(shè)置字符序列的長(zhǎng)度。 Vo

18、id ensureCapacity(intminimumCapacity) 確保容量至少等于指定的最小值。 (fig11.11),11.4.3 StringBuffer類的charAt、setCharAt、getChars、reverse方法 Char charAt(intindex) 返回此序列中指定索引處的 char 值。 Void setCharAt(intindex, charch) 將給定索引處的字符設(shè)置為 ch。 Void getChars(intsrcBegin, intsrcEnd, chardst, intdstBegin) 將字符從此序列復(fù)制到目標(biāo)字符數(shù)組 dst。 Str

19、ingBuffer reverse() 將此字符序列用其反轉(zhuǎn)形式取代。,11.4.4 StringBuffer類的append方法 StringBuffer append(booleanb/ / charc/doubled /floatf /inti /longl) 將 boolean 參數(shù)的字符串表示形式追加到序列。 StringBuffer append(charstr) 將 char 數(shù)組參數(shù)的字符串表示形式追加到此序列。 StringBuffer append(charstr, intoffset, intlen) 將 char 數(shù)組參數(shù)的子數(shù)組的字符串表示形式追加到此序列。Strin

20、gBuffer append(CharSequences) 將指定的 CharSequence 追加到該序列。 StringBuffer append(CharSequences, intstart, intend) 將指定 CharSequence 的子序列追加到此序列。,11.4 .4 StringBuffer類的append方法 StringBuffer append(Objectobj) 追加 Object 參數(shù)的字符串表示形式。 StringBuffer append(Stringstr) 將指定的字符串追加到此字符序列。 StringBuffer append(StringBuff

21、ersb) 將指定的 StringBuffer 追加到此序列中。 S+=“!”; 將執(zhí)行 s=new StringBuffer().append(s).append(“!”).toString();,11.4.5 StringBuffer類的插入和刪除方法 StringBuffer insert(intoffset, booleanb/ charc/doubled /floatf /inti /longl) 將 boolean 參數(shù)的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, charstr) 將 char 數(shù)組參數(shù)的字符串表示形式插入此序列中。

22、 StringBuffer insert(intindex, charstr, intoffset, intlen) 將數(shù)組參數(shù) str 的子數(shù)組的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, Objectobj) 將 Object 參數(shù)的字符串表示形式插入此字符序列中。 StringBuffer insert(intoffset, Stringstr) 將字符串插入此字符序列中。 StringBuffer delete(intstart, intend) 移除此序列的子字符串中的字符。 StringBuffer deleteCharAt(inti

23、ndex) 移除此序列指定位置的 char。,11.5 Character類 Character類的大多數(shù)方法都是靜態(tài)方法,并且至少有一個(gè)字符參數(shù),這些方法要么執(zhí)行字符的測(cè)試,要么執(zhí)行字符的操作。 staticboolean isDefined(charch) 確定指定字符是否被定義為 Unicode 中的字符。 staticboolean isDigit(charch) 確定指定字符是否為數(shù)字。 staticboolean isJavaIdentifierStart(charch) 確定是否允許將指定字符作為 Java 標(biāo)識(shí)符中的首字符。(字母、下劃線、$) staticboolean is

24、JavaIdentifierPart(charch) 確定指定字符是否可以是 Java 標(biāo)識(shí)符中首字符以外的部分。 staticboolean isLetter(charch) 確定指定字符是否為字母。 staticboolean isLowerCase(charch) 確定指定字符是否為小寫字母。 staticboolean isUpperCase(charch) 確定指定字符是否為大寫字母。 staticchar toLowerCase(charch) staticchar toUpperCase(charch),11.5 Character類 staticchar forDigit(in

25、tdigit, intradix) 確定使用指定基數(shù)的特定數(shù)字的字符表示形式。如果 radix 的值不是一個(gè)有效基數(shù),或者 digit 的值不是一個(gè)使用指定基數(shù)的有效數(shù)字,則返回 null 字符。 如果 radix 參數(shù)大于或等于 MIN_RADIX 并且小于或等于 MAX_RADIX,則該參數(shù)是有效的。如果 0=digitradix,則 digit 參數(shù)是有效的。 參數(shù): digit - 轉(zhuǎn)換為字符的數(shù)字。 radix - 基數(shù)。 (二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制等;基數(shù)分別為2,8,10,16) 返回: 使用指定基數(shù)的指定數(shù)字的 char 表示形式。 例如:digit=13 radix=

26、16 輸出結(jié)果為:d,11.5 Character類 staticint digit(charch, intradix) 返回使用指定基數(shù)的字符 ch 的值。 例如:ch=f radix=16 返回結(jié)果為:15 (fig11.16) Char charValue() 返回此 Character 對(duì)象的值。 Boolean equals(Objectobj) 將此對(duì)象與指定對(duì)象比較。 String toString() 返回表示此 Character 值的 String 對(duì)象。,11.6 StringTokenizer類 string tokenizer 類允許應(yīng)用程序?qū)⒆址纸鉃闃?biāo)記。 Bo

27、olean hasMoreTokens() 測(cè)試此 tokenizer 的字符串中是否還有更多的可用標(biāo)記。 String nextToken() 返回此 string tokenizer 的下一個(gè)標(biāo)記。 StringTokenizer st = new StringTokenizer(this is a test); while (st.hasMoreTokens() System.out.println(st.nextToken(); 輸出以下字符串: this is a test,11.7 正則表達(dá)式 (1):用來匹配字符串的開始。 (2)$:用來匹配字符串的結(jié)束。 (3)*:用來表示一個(gè)字符可以出現(xiàn)零次或者多次。 (4)+:用來表示一個(gè)字符可以出現(xiàn)一次或者多次。 (5)?:用來表示一個(gè)字符可以出現(xiàn)零次或者一次。 例如:編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論