第七章、字符串_第1頁
第七章、字符串_第2頁
第七章、字符串_第3頁
第七章、字符串_第4頁
第七章、字符串_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第九章 -字符串學(xué)習(xí)目標(biāo)n掌握String的基本用法如何定義、初始化字符串如何訪問字符串長(zhǎng)度如何比較、連接、提取字符串n會(huì)使用StringBuffer類的方法對(duì)字符串進(jìn)行操作/無處不在的字符串n生活中的字符串n使用String對(duì)象存儲(chǔ)字符串nString類位于java.lang包中,具有豐富的方法計(jì)算字符串的長(zhǎng)度連接字符串比較字符串提取字符串/ 頻繁使用的字符串頻繁使用的字符串 “有志者事竟成有志者事竟成 ” “離奧運(yùn)會(huì)開幕還有離奧運(yùn)會(huì)開幕還有380天天” “教育改變生活教育改變生活”String s = 有志者事竟成有志者事竟成;String s = new String(有志者事竟成有志者

2、事竟成);字符串長(zhǎng)度2-1/package s1java.sg.chap9;import java.util.*;public class Hello1 public static void main(String args) System.out.print(請(qǐng)隨機(jī)輸入你想到的名字:請(qǐng)隨機(jī)輸入你想到的名字: ); Scanner input = new Scanner(System.in); String name = input.next(); System.out.println(這個(gè)名字的長(zhǎng)度是這個(gè)名字的長(zhǎng)度是: + name.length()+ );隨機(jī)輸入你心中想到的一個(gè)名字,然后

3、輸出它的字符串長(zhǎng)度調(diào)用字符串的調(diào)用字符串的length()方法可方法可以獲得字符串的長(zhǎng)度以獲得字符串的長(zhǎng)度要想打印輸出引號(hào)要想打印輸出引號(hào)(”),必須在字符串,必須在字符串中使用轉(zhuǎn)義序列中使用轉(zhuǎn)義序列”字符串長(zhǎng)度2-2n計(jì)算字符串長(zhǎng)度/字符串字符串長(zhǎng)度長(zhǎng)度調(diào)用調(diào)用length() 方法獲得方法獲得返回字符串返回字符串中的字符數(shù)中的字符數(shù)調(diào)用方法調(diào)用方法:字符串標(biāo)識(shí)符字符串標(biāo)識(shí)符.length();方法原型方法原型:public int length() 字符串比較4-1 兩個(gè)學(xué)員輸入各自最喜歡的課程名稱,判斷是否一致/ /判斷課程名稱是否相同判斷課程名稱是否相同 if(favCourse1.e

4、quals(favCourse2) System.out.println(最喜歡的課程相同最喜歡的課程相同); else System.out.println(最喜歡的課程不相同最喜歡的課程不相同); 比較兩個(gè)字符串比較兩個(gè)字符串是否相等是否相等 演示示例演示示例2:演示比較字符串演示比較字符串 字符串比較4-2nequals()方法比較原理n輸入的“Java”和“java”代表同一課程,如何解決?使用equalsIgnoreCase()方法結(jié)合toUpperCase()或toLowerCase()/字符串字符串 1字符串字符串 2檢查組成字符串內(nèi)容的字符是否完全一致檢查組成字符串內(nèi)容的字符是

5、否完全一致字符串比較4-3使用equalsIgnoreCase()方法解決/比較時(shí)忽略大小寫形式比較時(shí)忽略大小寫形式if(favCourse1.equalsIgnoreCase(favCourse2) System.out.println(最喜歡的課程相同最喜歡的課程相同); else System.out.println(最喜歡的課程不相同最喜歡的課程不相同); 字符串比較4-4結(jié)合toUpperCase()方法解決/Java使用使用 toUpperCase( ) 方法方法JAVAJava使用使用 toLowerCase( ) 方法方法javaif(favCourse1.toUpperCas

6、e().equals(favCourse2.toUpperCase() System.out.println(最喜歡的課程相同最喜歡的課程相同);else System.out.println(最喜歡的課程不相同最喜歡的課程不相同);小結(jié)1 學(xué)員進(jìn)行入學(xué)注冊(cè),輸入兩次密碼,如果相同,提示注冊(cè)成功,如果不相同,提示重新輸入密碼/選用哪個(gè)方法更合適?選用哪個(gè)方法更合適? 字符串連接3-1 小李的Java成績(jī)?nèi)绫硭?,輸出他的成?jī)單學(xué)科成績(jī)SQL80Java90HTML86.7/public static void main(String args) int sqlScore = 80; /sql成

7、績(jī)成績(jī) int javaScore = 90; /java成績(jī)成績(jī) double htmlScore = 86.7; /html成績(jī)成績(jī) /創(chuàng)建成績(jī)單創(chuàng)建成績(jī)單 String scoreSheet = SQL: + sqlScore + Java: + javaScore + HTML: + htmlScore; /打印成績(jī)單打印成績(jī)單 System.out.println(*令狐沖成績(jī)單令狐沖成績(jī)單*); System.out.println(scoreSheet); “+”連接字符連接字符串串String scoreSheet = SQL:t + sqlScore + nJava:t +

8、javaScore + nHTML:t + htmlScore;數(shù)值型變量自數(shù)值型變量自動(dòng)轉(zhuǎn)換成動(dòng)轉(zhuǎn)換成String類型類型字符串連接3-2n方法1:使用“+”n方法2:使用String類的concat()方法/你好,張三!你好,張三!String s = new String(你好,你好,);String name = new String(張三!張三!);String sentence = s.concat(name);System.out.println(sentence);輸出結(jié)果輸出結(jié)果A.concat(B):B字符串將被連接到字符串將被連接到A字符串后面字符串后面字符串的分割n字符

9、串的分割,就是控制分割后,形成多個(gè)字符串 String ses=s.split(str);如:/String str = new String(英語,數(shù)學(xué),語文英語,數(shù)學(xué),語文 );String courses=str.split(,);/提取字符串中的單個(gè)字符n在這里我們可以使用charAt();String a=“nihao”;char b=a.charAt(3);System.out.print(b);a注意:注意:charAt()方法返回的是方法返回的是char類型的值,里邊的參數(shù)是要求提取的位置類型的值,里邊的參數(shù)是要求提取的位置 字符串常用提取方法4-1 使用作業(yè)提交系統(tǒng)提交Jav

10、a作業(yè),輸入java源代碼文件名,并輸入自己的郵箱,提交前對(duì)Java文件名以及郵箱有效性進(jìn)行檢查。編碼實(shí)現(xiàn)/ 合法的文件名應(yīng)該以.java結(jié)尾 合法的郵箱名中至少要包含“”和“.”, 并檢查“”是否在“.”之前字符串常用提取方法4-2n常用提取方法舉例方法說明public int indexOf(int ch) 搜索第一個(gè)出現(xiàn)的字符ch(或字符串value)public int indexOf(String value)public int lastIndexOf(int ch) 搜索最后一個(gè)出現(xiàn)的字符ch(或字符串value)public int lastIndexOf(String val

11、ue)/返回出現(xiàn)第一個(gè)匹配的位置,返回出現(xiàn)第一個(gè)匹配的位置, 如果沒如果沒有找到字符或字符串,則返回有找到字符或字符串,則返回-1青春無悔0 1 2 3 位置位置 演示示例演示示例4:演示常用字符串提取方法:演示常用字符串提取方法 字符串常用提取方法4-3方法說明public String substring(int index)提取從位置索引開始的字符串部分public String substring(int beginindex, int endindex)提取beginindex和endindex之間的字符串部分public String trim()返回一個(gè)前后不含任何空格的調(diào)用字符

12、串的副本/beginindex: 字符串的位置從字符串的位置從0開始算;開始算;endindex: 字符串的位置從字符串的位置從1開始算開始算 字符串常用提取方法4-4/ /檢查檢查Java文件名文件名 int index = fileName.lastIndexOf(.); if(index!=-1 & index!=0 & fileName.substring(index+1, fileName.length().equals(java) fileCorrect = true; else System.out.println(文件名無效。文件名無效。); /檢查你的郵箱格式

13、檢查你的郵箱格式if (email.indexOf() !=- 1 & email.indexOf(.) email.indexOf() emailCorrect = true;else System.out.println(Email無效。無效。); 演示示例演示示例5:演示作業(yè)提交系統(tǒng):演示作業(yè)提交系統(tǒng) 作業(yè)提交系統(tǒng)作業(yè)提交系統(tǒng)小結(jié)2 如果要打印輸出“小魚兒”,應(yīng)填入的代碼是什么? /String word = Hello, ;word = word.trim();String s = word.concat(小魚兒小魚兒!);int index1 = s.indexOf(,);i

14、nt index2 = s.indexOf(!);System.out.println(s.substring(_, _);index1+1index2StringBuffernStringBuffer:String增強(qiáng)版,n可以使用append方法進(jìn)行字符串的追加,并且只是基于一個(gè)對(duì)象的操作,StringBuffer對(duì)象的存儲(chǔ)容量只要超過初始容量,都會(huì)在使用的過程中自動(dòng)的增加。nStringBuffer聲明nStringBuffer的使用/StringBuffer sb = new StringBuffer();StringBuffer sb = new StringBuffer(aaa);

15、創(chuàng)建空字符串創(chuàng)建空字符串創(chuàng)建一個(gè)變量存儲(chǔ)創(chuàng)建一個(gè)變量存儲(chǔ)字符串字符串a(chǎn)aasb.toString(); /轉(zhuǎn)化為轉(zhuǎn)化為String類型類型sb.append(*); /追加字符串追加字符串StringBuffer的用武之地 /聲明課程信息字符串聲明課程信息字符串 StringBuffer course = new StringBuffer(); System.out.println(請(qǐng)輸入請(qǐng)輸入S1課程信息:課程信息: ); Scanner sc = new Scanner(System.in); /循環(huán)從鍵盤接收字符串循環(huán)從鍵盤接收字符串 String input; while(!(inpu

16、t = sc.next().equals(#) course.append(input); course.append(n); System.out.println(s1的課程信息是:的課程信息是: + course);定義定義StringBuffer的實(shí)的實(shí)例,存儲(chǔ)課程字符串例,存儲(chǔ)課程字符串循環(huán)追加字符,使用循環(huán)追加字符,使用StringBuffer,效率高!,效率高!從控制臺(tái)接收課程信息,不斷累加直到輸入從控制臺(tái)接收課程信息,不斷累加直到輸入“#”鍵結(jié)束,并輸出全部課程信息鍵結(jié)束,并輸出全部課程信息 String與StringBuffernString:為不可變對(duì)象,一旦被創(chuàng)建,就不能修

17、改它的值。對(duì)于已經(jīng)存在的String對(duì)象的修改都是重新創(chuàng)建一個(gè)新的對(duì)象,然后把新的值保存進(jìn)去。耗內(nèi)存,效率低其聲明方式: String s=“hello”; 或 String s=new String(“hello”);nStringBuffer:是一個(gè)可變對(duì)象,當(dāng)對(duì)他進(jìn)行修改的時(shí)候不會(huì)重新建立對(duì)象只能通過構(gòu)造函數(shù)來建立,即聲明方式只能是:StringBuffer sb = new StringBuffer(“hello”);不能通過賦值符號(hào)對(duì)他進(jìn)行賦值。 如sb = “welcome to here!”;是錯(cuò)誤的。向StringBuffer中追加字符串使用它的append方法:sb.appe

18、nd();StringBuilder類nJ2se 5.0 提供了java.lang.StringBuilder類,一個(gè)可變的字符序列。此類提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步。n該類被設(shè)計(jì)用作StringBuffer的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候(這種情況很普遍)。如果可能,建議優(yōu)先采用該類,因?yàn)樵诖蠖鄶?shù)實(shí)現(xiàn)中,它比StringBuffer要快。 n在StringBuilder上的主要操作是append和insert方法,重載這些方法,以接受任意類型的數(shù)據(jù)。每個(gè)方法都能有效地將給定的數(shù)據(jù)轉(zhuǎn)換成字符串,然后將該字符串的字符追加或插入到字符串生成器中。append方法始終將這些字符添加到生成器的末端;而 insert 方法則在指定的點(diǎn)添加字符。n常用方法:查閱和使用API文檔/三個(gè)表示字符串類的區(qū)別:nJAVA中提供了專門處理字符串的三個(gè)標(biāo)準(zhǔn)的類,分別是String類、Stri

溫馨提示

  • 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)論