chapter09字符串講解課件_第1頁(yè)
chapter09字符串講解課件_第2頁(yè)
chapter09字符串講解課件_第3頁(yè)
chapter09字符串講解課件_第4頁(yè)
chapter09字符串講解課件_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

IntroductionToJavaProgrammingCollegeOfSoftwareLiu.ZhiGangEmail:dqpilzg@163.comChapter09StringandTextIOPartIStringstr1=“Java";str1=“HTML";問(wèn)題:

下列代碼是否改變字符串的內(nèi)容?結(jié)論:字符串的內(nèi)容一旦建立,該字符串所在堆上的內(nèi)容就無(wú)法改變。什么是字符串?(1)字符串就是一個(gè)字符序列.在許多語(yǔ)言中,將字符串處理為字符的數(shù)組,但是在java中字符串是一個(gè)對(duì)象.(2)java提供了StringStringBuffer

StringTokenizer這三個(gè)類來(lái)處理字符串.8.1String構(gòu)造函數(shù)String()String(Stringvalue)String(char[]chr)String(SringBuffers)Stringstr1="WelcometoJava";Stringstr2=new

String("WelcometoJava");char[]chr={'W','e','l','c','o','m','e','','t','o','','J','a','v','a'};Stringstr3=new

String(chr);方法字符串比較equals(String

str)(returntypeisboolean)falseStrings1=new

String("abc");Strings2=new

String("abc");if(s1==s2)

System.out.println(“true");else

System.out.println(“false");if(s1.equals(s2))

System.out.println(“true");else

System.out.println(“false");trueSummarize:==比較的是變量在棧中的值是否相同。對(duì)于基礎(chǔ)數(shù)據(jù)類型,可以比較其值是否相等。對(duì)于引用類型,棧里的值就是一個(gè)地址,因此比較的是地址是否相同,而不是堆上的具體內(nèi)容是否相同。equals比較的是兩個(gè)引用類型的變量指向的堆中的內(nèi)容是否相同。Methods字符串比較startsWith(String

str)(returntypeisboolean)endWith(String

str)(returntypeisboolean)字符串連接我們可以使用concat()方法連接兩個(gè)字符串使用+連接兩個(gè)或者多個(gè)字符串。Stringstr1="abc";Stringstr2="abe";Stringstr3="bf";Stringstr4=str1+str2+str3;Stringstr5=str1.concat(str2);Note:java語(yǔ)言區(qū)分大小寫Stringstr1=“welcomtojava";booleanflag1=str1.startsWith(“welcom");booleanflag2=str1.endsWith(“Java");truefalseNote:java語(yǔ)言區(qū)分大小寫Methods字符串轉(zhuǎn)換(returntypeareString)toLowerCase()toUpperCase()replaceFirst(String

oldstring,String

newstring)replaceAll(String

oldstring,String

newstring)注意:轉(zhuǎn)換后的結(jié)果保存在新的字符串中,對(duì)原有字符串沒(méi)有任何改變。Stringstr1=“welcomtojava";Stringstr2=str1.replaceAll("java",“JSP");Stringstr3=str1.toUpperCase();System.out.println(str2);System.out.println(str3);welcomtoJSPWELCOMTOJAVASystem.out.println(str1);welcomtojavaThinkingtheresult!public

classTest{ public

static

void

main(String[]args){ Stringmessage="ABCD";

repalce(message);

System.out.println(message); } public

static

void

repalce(String

str){

str.replaceAll("A","B"); }}2010軟件大賽試題:寫出程序結(jié)果public

classTest{public

static

void

main(String[]args){Stringmessage="ABCD";repalce1(message);

System.out.println(message);Stringmessage2=replace2(message);System.out.println(message2);}public

static

voidrepalce1(Stringstr){

str.replaceAll("A","B");}public

staticStringreplace2(Stringstr){Stringr=str.replaceAll("A","B");returnr;}}2010軟件大賽試題變形:寫出程序結(jié)果Methods字符串查找indexOf(String

str)(returntypeisint)lastIndexOf(String

str)subString(intbegin)(returntypeisString)subString(int

beginIndex,int

endIndex)Stringstr=new

String("IlikeJava");inti1=str.indexOf("like");inti2=str.lastIndexOf("a");Stringstr1=str.substring(2,5);210likNote:截取的子串是從begin開(kāi)始,到end-1結(jié)束Methods字符串和字符的轉(zhuǎn)換charAt(intindex)char[]chrs=str.toCharArray();字符串長(zhǎng)度length()Stringstr11=new

String("IlikeJava");charc=str11.charAt(2);char[]chrs=str11.toCharArray();intlength=str11.length();Methods字符串比較equals(String

str)startsWith(String

str)endWith(String

str)字符串連接+,concat()字符串轉(zhuǎn)換toLowerCase()toUpperCase()replaceFirst(String

oldstring,String

newstring)replaceAll(String

oldstring,String

newstring)Methods字符串查找indexOf(String

str)lastIndexOf(String

str)subString(intbegin)subString(intbegin,intend)字符串和字符之間的轉(zhuǎn)換charAt(intindex)char[]chrs=str.toCharArray();字符串長(zhǎng)度length()參見(jiàn)實(shí)驗(yàn)指導(dǎo)書例程Example從一個(gè)字符串中截取具有指定特征的子串。Myemailisdqpilzg@163.com!Y…….參見(jiàn)實(shí)驗(yàn)指導(dǎo)書例程Stringmessage="Myemailisdqpilzg@163.com!Youcanmailtome.";intB=message.indexOf('!');Stringmessage2=message.substring(0,B);intA=message2.lastIndexOf('');Stringemail=message2.substring(A+1);System.out.println(email);(1)email在該字符串中以空格開(kāi)始,以嘆號(hào)結(jié)束.(2)該字符串中僅包含一個(gè)嘆號(hào)BAmessage.substring(A+1,B);8.2StringBufferIntroductionString對(duì)象一旦創(chuàng)建后,它的值就不能再修改,比如插入、追加。如果要修改,只能重新賦值。凡是String可以使用的地方,都可以使用StringBuffer。StringBuffer更靈活,我們可以增加、插入和追加新的內(nèi)容在緩沖區(qū)中。頻繁修改字符串對(duì)象的值,對(duì)內(nèi)存浪費(fèi)很大。StringBuffer,也稱為字符串緩沖區(qū),可以實(shí)現(xiàn)長(zhǎng)度可變和內(nèi)容可變的字符序列。情況類似數(shù)組和ArrayList(數(shù)組一旦創(chuàng)建,長(zhǎng)度固定,但是ArrayList的長(zhǎng)度可以變化。)構(gòu)造函數(shù)StringBuffer(String

str)E.g.StringBuffer

strBuffer=newStringBuffer(“abc”);字符串追加append(dataTypet)dataType:boolean、char、int、long、float、double、String、chr[]、object字符串插入insert(intindex,dataTypet)StringBufferb1=new

StringBuffer("Itis");b1.append("JDK");b1.append(2.0);StringBufferb2=new

StringBuffer("Itis");b2.insert(6,2.0);b2.insert(6,"JDK");Result:b1=b2=ItisJDK2.0字符串刪除delete(int

begin_index,int

end_index)其他操作length()reverse()將字符串的內(nèi)容按照從后往前的順行進(jìn)行顛倒Note:從begin開(kāi)始,到end-1結(jié)束參見(jiàn)實(shí)驗(yàn)指導(dǎo)書例程Stringstr="12345";StringBuffer

b1=new

StringBuffer(str);StringBuffer

b2=strBuffer.reverse();b2.delete(0,1);System.out.println(“b2="+b2);543214321ExampleScannerscanner=new

Scanner(System.in);System.out.println("Pleaseinputthestring:");StringoldStr=scanner.nextLine();StringBuffer

oldBuffer=new

StringBuffer(oldStr);StringBuffer

newBuffer=oldBuffer.reverse();StringnewStr=new

String(newBuffer);if(oldStr.equals(newStr))

System.out.println(oldStr+"是回文字符串");else

System.out.println(oldStr+"不是回文字符串");public

classTest{ public

static

void

main(String[]args){

StringBuffera=new

StringBuffer("AA");

StringBufferb=new

StringBuffer("BB");

f(a,b);

System.out.println(a); } private

static

void

f(StringBufferx, StringBuffery){ x.append(y); }}2010軟件大賽試題:寫出程序結(jié)果8.3StringTokenizerStringstr="Friday;Monday;Sunday";FridayMondaySundayStringTokenizer也稱字符分析器,使用分隔符進(jìn)行字符串的分隔ConstructorStringTokenizer(Strings)使用默認(rèn)的分隔符:空格、回車、Tab符StringTokenizer(Strings,Stringdelim)使用自定義分隔符MethodscountTokens()在要分析的字符串中,以分隔符為標(biāo)記,統(tǒng)計(jì)有多少個(gè)子串nextToken()逐個(gè)獲取子串hasMoreTokens()是否還有子串,如果有,返回true,否則返回falseExample分析字符串,輸出單詞的總數(shù)和每個(gè)單詞參見(jiàn)實(shí)驗(yàn)指導(dǎo)書例程Stringstr="Friday;Monday;Sunday";StringTokenizer

stk=new

StringTokenizer(str,";");System.out.println("單詞總數(shù)是:"+stk.countTokens());inti=0;while(stk.hasMoreTokens()){i++;Stringword=stk.nextToken();

System.out.println("第"+i+"個(gè)單詞為:"+word);}使用StringTokenizer對(duì)象,對(duì)字符串str,按照分隔符”;”進(jìn)行分隔總結(jié)字符串的內(nèi)容一旦建立,該字符串所在堆上的內(nèi)容就無(wú)法改變。比較字符串的內(nèi)容是否相等,必須使用equals方法,而不能使用==操作符StringBuffer可以實(shí)現(xiàn)長(zhǎng)度可變和內(nèi)容可變的字符序列,方法有append,insert,delete,length,reverseStringTokenizer根據(jù)分隔符進(jìn)行字符串的分割,在構(gòu)造函數(shù)中可以定指定分隔符,方法有countTokens,nextToken,hasMoreTokens以下內(nèi)容學(xué)生了解即可MethodsStringCompareequals(String

str)falseStrings1,s2,Strings3="abc",s4="abc";s1=new

String("abc");s2=new

String("abc");if(s1==s2)

System.out.println(“true");else

System.out.println(“false");if(s3==s

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論