版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自無(wú)證建房出售合同(2篇)
- 粘土冰淇淋課件
- 語(yǔ)文單據(jù) 課件
- 專題01 字音字形詞語(yǔ)(考點(diǎn)串講)-七年級(jí)語(yǔ)文上學(xué)期期末考點(diǎn)大串講(統(tǒng)編版2024·五四學(xué)制)
- 第一講 成長(zhǎng)趣事(看圖寫話教學(xué))-二年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- 第七講 做手工(看圖寫話教學(xué))-二年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- 西京學(xué)院《應(yīng)用統(tǒng)計(jì)學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《數(shù)字電子技術(shù)》2021-2022學(xué)年期末試卷
- 西京學(xué)院《機(jī)械工程測(cè)試技術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沖突 作文 課件
- 凱文杜蘭特-英語(yǔ)介紹
- 剖宮產(chǎn)術(shù)后再次妊娠陰道分娩管理的專家共識(shí)
- 鐵路工程擋土墻加固施工平安方案
- 最全的俄語(yǔ)教學(xué)課件
- 改進(jìn)維持性血液透析患者貧血狀況PDCA
- 再生資源回收利用體系建設(shè)項(xiàng)目方案
- 循證護(hù)理學(xué)(理論部分)智慧樹(shù)知到答案章節(jié)測(cè)試2023年復(fù)旦大學(xué)
- 醫(yī)院開(kāi)展老年友善醫(yī)療機(jī)構(gòu)建設(shè)工作總結(jié)
- 馬克思主義基本原理概論智慧樹(shù)知到答案章節(jié)測(cè)試2023年泰山學(xué)院
- 餐飲檔口和門店消防安全培訓(xùn)
- 噴錫培訓(xùn)教程
評(píng)論
0/150
提交評(píng)論