




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第11章 字符串和字符,教學目標: 創(chuàng)建和操作不可修改的String類的字符串對象 創(chuàng)建和操作可修改的StringBuffer類的字符串對象 創(chuàng)建和操作Character類的 對象 使用StringTokenizer對象將String對象分解為符號 教學重點: 掌握以上類的具體應用 教學難點: 正則表達式,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 本章簡介,字符是構建Java源程序的基本構建塊。字符常量是一個整數值,它表示為單引號中的字符。 字符串由一系列字符構成,將這些字符視為一個單元。字符串可以包含字母、數字和各種特殊字符。字符串是String類的對象。字符串常量(以“匿名”的String對象形式存儲在內存中)記為雙引號中的一系列字符。 String color=“blue”;,11.2 字符和字符串的基本知識,11.3.1 String類構造函數 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() 返回此字符串的長度。 Char charAt(intindex) 返回指定索引處的 char 值。 Void getChars(intsrcBegin, intsrcEnd, chardst, intdstBegin) 將字符從此字符串復制到目標字符數組。,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) :比較此字符串與指定的對象。 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、=(比較引用時,如果兩個對象引用指向內存中的同一個對象,則比較結果為真;否則為假) 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 與另一個 String 進行比較,不考慮大小寫。 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) 按字典順序比較兩個字符串。 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):測試兩個字符串區(qū)域是否相等。 boolean regionMatches(inttoffset, Stringother, intooffset, intlen) :測試兩個字符串區(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) 測試此字符串是否以指定的前綴開始。 boolean startsWith(Stringprefix, inttoffset) 測試此字符串是否以指定前綴開始,該前綴以指定索引開始。 boolean endsWith(Stringsuffix) 測試此字符串是否以指定的后綴結束。,11.3.4 定位字符串中的字符和子字符串 int indexOf(intch) 返回指定字符在此字符串中第一次出現處的索引。 Int indexOf(intch, intfromIndex) 從指定的索引開始搜索,返回在此字符串中第一次出現指定字符處的索引。 Int indexOf
12、(Stringstr) 返回第一次出現的指定子字符串在此字符串中的索引。 Int indexOf(Stringstr, intfromIndex) 從指定的索引處開始,返回第一次出現的指定子字符串在此字符串中的索引。,int lastIndexOf(intch) 返回最后一次出現的指定字符在此字符串中的索引。 Int lastIndexOf(intch, intfromIndex) 從指定的索引處開始進行后向搜索,返回最后一次出現的指定字符在此字符串中的索引。 Int lastIndexOf(Stringstr) 返回在此字符串中最右邊出現的指定子字符串的索引。 Int lastIndexOf
13、(Stringstr, intfromIndex) 從指定的索引處開始向后搜索,返回在此字符串中最后一次出現的指定子字符串的索引。 返回的整數是最大值 k,它滿足: k = Math.min(fromIndex, str.length() letters.indexOf( “def”, 7 );返回的結果? letters.indexOf( hello );返回的結果? letters.lastIndexOf( “def”, 2); 返回的結果? letters.lastIndexOf( def, 17); 返回的結果?,11.3.5 提取字符串中的子字符串 String substring(
14、intbeginIndex) 返回一個新的字符串,它是此字符串的一個子字符串。 String substring(intbeginIndex, intendIndex) 返回一個新字符串,它是此字符串的一個子字符串。 beginIndex - 開始處的索引(包括)。 endIndex - 結束處的索引(不包括)。,11.3.6 字符串連接及其他方法 String concat(Stringstr) 將指定字符串聯到此字符串的結尾。 String replace(charoldChar, charnewChar) 返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有 oldC
15、har 而生成的。 String toUpperCase() 使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉換為大寫。 String toLowerCase() 使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉換為小寫。 char toCharArray() 將此字符串轉換為一個新的字符數組。 String trim() 返回字符串的副本,忽略前導空白和尾部空白。,11.3.7 String類的valueOf方法 staticString valueOf(booleanb/ charc/doubled /floatf /inti /longl) 返回 boolean 參數
16、的字符串表示形式。 staticString valueOf(chardata) 返回 char 數組參數的字符串表示形式。 staticString valueOf(chardata, intoffset, intcount) 返回 char 數組參數的特定子數組的字符串表示形式。 staticString valueOf(Objectobj) 返回 Object 參數的字符串表示形式。 (fig11.9),11.4.1 StringBuffer類的構造函數 StringBuffer() 構造一個其中不帶字符的字符串緩沖區(qū),其初始容量為 16 個字符。 StringBuffer(CharSe
17、quenceseq) 構造一個字符串緩沖區(qū),它包含與指定的 CharSequence 相同的字符。 StringBuffer(intcapacity) 構造一個不帶字符,但具有指定初始容量的字符串緩沖區(qū)。 StringBuffer(Stringstr) 構造一個字符串緩沖區(qū),并將其內容初始化為指定的字符串內容。,11.4.2 StringBuffer類的length、capacity、ensureCapacity方法 int length() 返回長度(字符數)。 int capacity() 返回當前容量。 void setLength(intnewLength) 設置字符序列的長度。 Vo
18、id ensureCapacity(intminimumCapacity) 確保容量至少等于指定的最小值。 (fig11.11),11.4.3 StringBuffer類的charAt、setCharAt、getChars、reverse方法 Char charAt(intindex) 返回此序列中指定索引處的 char 值。 Void setCharAt(intindex, charch) 將給定索引處的字符設置為 ch。 Void getChars(intsrcBegin, intsrcEnd, chardst, intdstBegin) 將字符從此序列復制到目標字符數組 dst。 Str
19、ingBuffer reverse() 將此字符序列用其反轉形式取代。,11.4.4 StringBuffer類的append方法 StringBuffer append(booleanb/ / charc/doubled /floatf /inti /longl) 將 boolean 參數的字符串表示形式追加到序列。 StringBuffer append(charstr) 將 char 數組參數的字符串表示形式追加到此序列。 StringBuffer append(charstr, intoffset, intlen) 將 char 數組參數的子數組的字符串表示形式追加到此序列。Strin
20、gBuffer append(CharSequences) 將指定的 CharSequence 追加到該序列。 StringBuffer append(CharSequences, intstart, intend) 將指定 CharSequence 的子序列追加到此序列。,11.4 .4 StringBuffer類的append方法 StringBuffer append(Objectobj) 追加 Object 參數的字符串表示形式。 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 參數的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, charstr) 將 char 數組參數的字符串表示形式插入此序列中。
22、 StringBuffer insert(intindex, charstr, intoffset, intlen) 將數組參數 str 的子數組的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, Objectobj) 將 Object 參數的字符串表示形式插入此字符序列中。 StringBuffer insert(intoffset, Stringstr) 將字符串插入此字符序列中。 StringBuffer delete(intstart, intend) 移除此序列的子字符串中的字符。 StringBuffer deleteCharAt(inti
23、ndex) 移除此序列指定位置的 char。,11.5 Character類 Character類的大多數方法都是靜態(tài)方法,并且至少有一個字符參數,這些方法要么執(zhí)行字符的測試,要么執(zhí)行字符的操作。 staticboolean isDefined(charch) 確定指定字符是否被定義為 Unicode 中的字符。 staticboolean isDigit(charch) 確定指定字符是否為數字。 staticboolean isJavaIdentifierStart(charch) 確定是否允許將指定字符作為 Java 標識符中的首字符。(字母、下劃線、$) staticboolean is
24、JavaIdentifierPart(charch) 確定指定字符是否可以是 Java 標識符中首字符以外的部分。 staticboolean isLetter(charch) 確定指定字符是否為字母。 staticboolean isLowerCase(charch) 確定指定字符是否為小寫字母。 staticboolean isUpperCase(charch) 確定指定字符是否為大寫字母。 staticchar toLowerCase(charch) staticchar toUpperCase(charch),11.5 Character類 staticchar forDigit(in
25、tdigit, intradix) 確定使用指定基數的特定數字的字符表示形式。如果 radix 的值不是一個有效基數,或者 digit 的值不是一個使用指定基數的有效數字,則返回 null 字符。 如果 radix 參數大于或等于 MIN_RADIX 并且小于或等于 MAX_RADIX,則該參數是有效的。如果 0=digitradix,則 digit 參數是有效的。 參數: digit - 轉換為字符的數字。 radix - 基數。 (二進制、八進制、十進制、十六進制等;基數分別為2,8,10,16) 返回: 使用指定基數的指定數字的 char 表示形式。 例如:digit=13 radix=
26、16 輸出結果為:d,11.5 Character類 staticint digit(charch, intradix) 返回使用指定基數的字符 ch 的值。 例如:ch=f radix=16 返回結果為:15 (fig11.16) Char charValue() 返回此 Character 對象的值。 Boolean equals(Objectobj) 將此對象與指定對象比較。 String toString() 返回表示此 Character 值的 String 對象。,11.6 StringTokenizer類 string tokenizer 類允許應用程序將字符串分解為標記。 Bo
27、olean hasMoreTokens() 測試此 tokenizer 的字符串中是否還有更多的可用標記。 String nextToken() 返回此 string tokenizer 的下一個標記。 StringTokenizer st = new StringTokenizer(this is a test); while (st.hasMoreTokens() System.out.println(st.nextToken(); 輸出以下字符串: this is a test,11.7 正則表達式 (1):用來匹配字符串的開始。 (2)$:用來匹配字符串的結束。 (3)*:用來表示一個字符可以出現零次或者多次。 (4)+:用來表示一個字符可以出現一次或者多次。 (5)?:用來表示一個字符可以出現零次或者一次。 例如:編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級公共安全行為規(guī)范計劃
- 光伏電站土建施工危險點識別及管理措施
- 高校學生干部個人學歷情況說明范文
- 幼兒園園長2025年節(jié)能環(huán)保工作總結及行動計劃
- 婦產科護士長崗位職責管理
- 融資租賃公司不良清收處置計劃
- 珠寶門店人員培訓計劃
- 以形助數以數解形:高中數學數形結合解題教學的深度剖析與實踐
- 以平衡計分卡重塑C銀行客服中心績效體系:設計、應用與革新
- 以學案為翼助力高中數學教學騰飛-基于多校實踐的深度剖析
- 2025數學新課程標準培訓
- 稅務講座課件
- 2025年暑假實踐作業(yè)模板【課件】
- 學校食堂暑假前收尾工作指南
- 休閑車零部件回收再利用創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 滴灌帶生產項目可行性研究報告-D
- 消防系統(tǒng)維護保養(yǎng)方案
- 骨科護理實習生小講課
- 四川省南充市2023-2024學年七年級下學期期末考試道德與法治試卷(含答案)
- 2025至2030中國汽車散熱器行業(yè)市場發(fā)展分析及商業(yè)模式與投融資發(fā)展報告
- GB/T 45698-2025物業(yè)服務客戶滿意度測評
評論
0/150
提交評論