




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
字符串Strings第五章目標(biāo)/OBJECTIVE0102030405領(lǐng)悟字符串的本質(zhì)熟練字符串的操作方法掌握字符串的格式化技術(shù)熟練運(yùn)用字符串方法熟悉正則表達(dá)式的匹配技術(shù)01
初識字符串
5.1初識字符串在Java編程語言中,字符串是不可變的,這意味著一旦創(chuàng)建了字符串對象,就無法更改其內(nèi)容。字符串在Java中是通過java.lang.String類來表示的。以下是一些關(guān)于Java字符串的特性:1.不可變性(Immutable):字符串一旦被創(chuàng)建,其內(nèi)容不能被修改。任何對字符串的操作都會產(chǎn)生一個(gè)新的字符串對象。2.String類:字符串是通過String類來表示的。這個(gè)類提供了許多用于操作字符串的方法,如拼接、比較、截取等。3.字符串字面值:在Java中,可以使用雙引號創(chuàng)建字符串字面值,例如:"Hello,World!"。這是一種創(chuàng)建字符串對象的簡便方式。4.字符串方法:String類提供了許多實(shí)用的方法,如length()(獲取字符串長度)、charAt(index)(獲取指定位置的字符)、substring(beginIndex,endIndex)(獲取子字符串)等。字符串的特性5.1初識字符串
一、使用字符串字面值:這是最簡單和常見的方式,直接使用雙引號括起來的字符序列來創(chuàng)建字符串。Stringstr="Hello,World!";二、使用String類的構(gòu)造方法:可以使用String類的構(gòu)造方法來創(chuàng)建字符串對象。這種方法允許在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建字符串。Stringstr=newString("Hello,World!");字符串的創(chuàng)建02字符串的操作5.2字符串的操作字符串的基本操作一、字符串拼接:字符串連接是指將兩個(gè)或多個(gè)字符串合并成一個(gè)新的字符串的操作。在Java中,可以使用不同的方法進(jìn)行字符串連接。5.2字符串的操作字符串的基本操作二、字符串比較5.2字符串的操作字符串的基本操作三、字符串長度和字符索引字符串的索引操作可以逐個(gè)訪問字符串中的字符,執(zhí)行各種字符級別的操作。以上是關(guān)于字符串連接、比較,以及字符串長度和字符索引的基礎(chǔ)知識。這些操作是處理字符串時(shí)必不可少的基礎(chǔ)操作,對于構(gòu)建各種應(yīng)用都具有重要意義。例題5.1在Java字符串部落中,有一位年輕的勇士正要做任務(wù)。請與其共同完成以下任務(wù):1.請定義兩個(gè)字符串變量str1和stri2,其內(nèi)容分別為"Java"和"Programming"。2.使用"+"運(yùn)算符將這兩個(gè)字符串連接起來,并將結(jié)果存儲在一個(gè)新的字符串變量str3中。3.使用equals()方法比較新的字符串與"JavaProgramming"是否相等,并將比較結(jié)果存儲在一個(gè)布爾變量result中。4.使用charAt()方法獲取str3中索引為5的字符,并將結(jié)果存儲在一個(gè)字符變量ch中。5.輸出變量str3、result、ch的內(nèi)容。5.2字符串的操作例題5.1Copilot指令:5.2字符串的操作任務(wù)1:請定義兩個(gè)字符串變量str1和stri2,其內(nèi)容分別為"Java"和"Programming"。任務(wù)2:使用"+"運(yùn)算符將這兩個(gè)字符串連接起來,并將結(jié)果存儲在一個(gè)新的字符串變量str3中。任務(wù)3:使用equals()方法比較新的字符串與"JavaProgramming"是否相等,并將比較結(jié)果存儲在一個(gè)布爾變量result中。任務(wù)4:使用charAt()方法獲取新字符串中索引為5的字符,并將結(jié)果存儲在一個(gè)字符變量ch中。任務(wù)5:輸出變量str3、result、ch的內(nèi)容。請編寫一個(gè)程序來完成以上任務(wù)。publicclassTest{
publicstaticvoidmain(String[]args){
//Task1
Stringstr1="Java";
Stringstr2="Programming";
//Task2
Stringstr3=str1+str2;
//Task3
booleanresult=str3.equals("JavaProgramming");
例題5.1引導(dǎo)Copilot生成的代碼如下所示:5.2字符串的操作
//Task4
charch=str3.charAt(5);
//Task5
System.out.println("str3:"+str3);
System.out.println("result:"+result);
System.out.println("ch:"+ch);
}}5.2字符串的操作
一、.StringBuffer類,指可變字符序列,用于構(gòu)造字符串對象。其內(nèi)部使用自動(dòng)擴(kuò)容的數(shù)組來操作字符串?dāng)?shù)據(jù)。StringBuffer類常用構(gòu)造器:1.StringBuffer():構(gòu)造一個(gè)不帶字符的字符串緩沖區(qū),其初始容量為16個(gè)字符。2.StringBuffer(intcapacity):構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。即可對byte[]value的大小進(jìn)行指定。3.StringBuffer(Stringstr):構(gòu)造一個(gè)字符串緩沖區(qū),并將其內(nèi)容初始化為指定字符串的內(nèi)容。StringBuilder和StringBuffer5.2字符串的操作
StringBuffer類常用方法:1.int
length():該方法可以獲取到當(dāng)前StringBuffer容器中字符串的有效長度。2.int
capacity():該方法可以返回當(dāng)前容器的容量。3.StringBufferappend(...):該方法可以將傳入的形參對應(yīng)的字符串加入到當(dāng)前容器中。4.StringBufferdelete(intstart,intend):該方法可以刪除當(dāng)前容器中指定序列部分的內(nèi)容。傳入的兩個(gè)形參代表了刪除的區(qū)間——[start,end),仍然是熟悉的前閉后開。StringBuilder和StringBuffer5.2字符串的操作
StringBuffer類常用方法:5.StringBufferreplace(intstart,intend,Stringstr):該方法可以將當(dāng)前容器中指定序列部分的字符串替換為傳入的str字符串。前兩個(gè)形參的作用同delete方法的形參。最后一個(gè)形參為最終替換成的字符串。 6.StringBufferreverse():該方法可以將當(dāng)前容器中的字符串反轉(zhuǎn)順序后再返回。7.StringBufferinsert(intoffset,Stringstr):該方法可以在當(dāng)前容器中字符串的指定索引處插入一段字符串,原字符串中的內(nèi)容從該索引處自動(dòng)后移。由于StringBuilder類使用和StringBuffer類兼容的API,因此,這兩者的常用方法基本相同。故在此只展示其中一種。StringBuilder和StringBuffer5.2字符串的操作
二、StringBuilder類被設(shè)計(jì)用作StringBuffer類的一個(gè)簡易替換,用在字符緩沖區(qū)被單個(gè)線程使用的時(shí)候。但在實(shí)際開發(fā)中,由于StringBuilder類效率比StringBuffer類還要高。因此,建議在滿足單線程的基礎(chǔ)上,優(yōu)先使用StringBuilder類。StringBuilder類常用構(gòu)造器:1.StringBuilder():構(gòu)造一個(gè)不帶字符的字符串緩沖區(qū),其初始容量為16個(gè)字符。2.StringBuilder(intcapacity):構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。即可對byte[]value的大小進(jìn)行指定。3.StringBuilder(Stringstr):構(gòu)造一個(gè)字符串緩沖區(qū),并將其內(nèi)容初始化為指定字符串的內(nèi)容。StringBuilder和StringBuffer的區(qū)別在于線程安全性,StringBuilder不是線程安全的,而StringBuffer是線程安全的,適用于多線程環(huán)境。StringBuilder和StringBuffer5.2字符串的操作字符串的格式化5.2字符串的操作字符串的格式化1.在java中格式化字符串的最常見方法是使用String.format()。2.對于格式化的控制臺輸出,還可以使用printf()或System.out和System.errPrintStreams的format()方法。3.創(chuàng)建一個(gè)Formatter并將其鏈接到StringBuilder。使用format()方法格式化的輸出將附加到StringBuilder。Stringoutput=String.format("%s=%d","joe",35);System.out.printf("Mynameis:%s%n","joe");StringBuildersbuf=newStringBuilder();Formatterfmt=newFormatter(sbuf);fmt.format("PI=%f%n",Math.PI);System.out.print(sbuf.toString());//youcancontinuetoappenddatatosbufhere.例題5.2在Java字符串部落中,有一位年輕的工匠擅長在雕刻中使用字符串作為圖紋。請與其共同完成以下任務(wù):1.使用String類的構(gòu)造方法創(chuàng)建一個(gè)字符串對象str1,內(nèi)容為"JavaProgrammingisfun!"。2.使用StringBuilder類將str1轉(zhuǎn)換為全大寫,并將結(jié)果存儲在一個(gè)新的字符串變量str2中。3.使用StringBuffer類在str2后面添加兩個(gè)感嘆號"!",并將結(jié)果存儲在一個(gè)新的字符串變量str3中。4.使用printf方法將str3進(jìn)行格式化輸出,格式為:"Ethan'smasterpiece:%s"。5.2字符串的操作例題5.2Copilot指令:5.2字符串的操作任務(wù)1:使用String類的構(gòu)造方法創(chuàng)建一個(gè)字符串對象str1,內(nèi)容為"JavaProgrammingisfun!"。任務(wù)2:使用StringBuilder類將str1轉(zhuǎn)換為全大寫,并將結(jié)果存儲在一個(gè)新的字符串變量str2中。任務(wù)3:使用StringBuffer類在str2后面添加兩個(gè)感嘆號"!",并將結(jié)果存儲在一個(gè)新的字符串變量str3中。任務(wù)4:使用printf方法將str3進(jìn)行格式化輸出,格式為:"Ethan'smasterpiece:%s"。請編寫一個(gè)程序來完成以上任務(wù)。例題5.2Copilot指令:引導(dǎo)Copilot生成的代碼如下所示:5.2字符串的操作publicclassTest{
publicstaticvoidmain(String[]args){
//Task1
Stringstr1=newString("JavaProgrammingisfun!");
//Task2
StringBuildersb=newStringBuilder(str1);
Stringstr2=sb.toString().toUpperCase();
//Task3
StringBufferstringBuffer=newStringBuffer(str2);
stringBuffer.append("!!");
Stringstr3=stringBuffer.toString();
//Task4
System.out.printf("Ethan'smasterpiece:%s",str3);
}}5.2字符串的操作字符串方法在Java中,字符串類提供了許多方法來進(jìn)行各種字符串操作。這一節(jié)將介紹一些常用的字符串方法,包括charAt()、indexOf()、lastIndexOf()、substring()、length()以及isEmpty()。5.2字符串的操作字符串方法一、charAt()、indexOf()、lastIndexOf()等方法的使用5.2字符串的操作字符串方法二、substring()方法:用于截取字符串的子串。5.2字符串的操作字符串方法三、length()方法和isEmpty()方法5.2字符串的操作例題5.3在Java字符串部落中,有一位女孩正在測試字符串處理能力。請與其共同完成以下任務(wù):1.創(chuàng)建一個(gè)字符串變量str1,內(nèi)容為:"Welcometothejungle!Itgetsworsehereeveryday."。2.使用indexOf()方法找到字符串中第一次出現(xiàn)字符'w'的位置,并將其存儲在一個(gè)整數(shù)變量num中。3.使用substring()方法截取字符串中從第一個(gè)'w'出現(xiàn)位置開始到結(jié)尾的子串,并將結(jié)果存儲在一個(gè)新的字符串變量str2中。4.使用isEmpty()方法判斷截取得到的子串是否為空,并將判斷結(jié)果存儲在一個(gè)布爾變量result中。5.輸出變量str1、str2、num、result的內(nèi)容。例題5.3Copilot指令:5.2字符串的操作任務(wù)1:創(chuàng)建一個(gè)字符串變量str1,內(nèi)容為:"Welcometothejungle!Itgetsworsehereeveryday."。任務(wù)2:使用indexOf()方法找到字符串中第一次出現(xiàn)字符'w'的位置,并將其存儲在一個(gè)整數(shù)變量num中。任務(wù)3:使用substring()方法截取字符串中從第一個(gè)'w'出現(xiàn)位置開始到結(jié)尾的子串,并將結(jié)果存儲在一個(gè)新的字符串變量str2中。任務(wù)4:使用isEmpty()方法判斷截取得到的子串是否為空,并將判斷結(jié)果存儲在一個(gè)布爾變量result中。任務(wù)5:輸出變量str1、str2、num、result的內(nèi)容。請編寫一個(gè)程序來完成以上任務(wù)。例題5.35.2字符串的操作publicclassTest{
publicstaticvoidmain(String[]args){
//Task1
Stringstr1="Welcometothejungle!Itgetsworsehereeveryday.";
//Task2
intnum=str1.indexOf('w');
//Task3
Stringstr2=str1.substring(num);
引導(dǎo)Copilot生成的代碼如下所示:
//Task4
booleanresult=str2.isEmpty();
//Task5
System.out.println("str1:"+str1);
System.out.println("str2:"+str2);
System.out.println("num:"+num);
System.out.println("result:"+result);
}}03正則表達(dá)式5.3正則表達(dá)式正則表達(dá)式的基本概念正則表達(dá)式是一種強(qiáng)大而靈活的文本匹配工具,用于在字符串中查找、替換和匹配模式。以下是正則表達(dá)式的基本概念:字符類:使用方括號[]表示,用于匹配一個(gè)字符的集合。例如:[abc]表示匹配字符'a'、'b'或'c'。元字符:具有特殊意義的字符,例如^、$、.、*等。例如:^表示匹配字符串的開頭,$表示匹配字符串的結(jié)尾。量詞:用于指定匹配的次數(shù)。例如:*表示零個(gè)或多個(gè),+表示一個(gè)或多個(gè),?表示零個(gè)或一個(gè)。轉(zhuǎn)義字符:使用反斜杠\來轉(zhuǎn)義元字符,使其失去特殊意義。例如:\.表示匹配點(diǎn)字符.而不是任意字符。5.3正則表達(dá)式使用Pattern和Matcher類進(jìn)行正則匹配pattern()返回正則表達(dá)式的字符串形式,其實(shí)就是返回Pplile(Stringregex)的regex參數(shù)。1.Pattern.split(CharSequenceinput):用于分隔字符串,并返回一String[],String.split(Stringregex)是通過Pattern.split(CharSequenceinput)來實(shí)現(xiàn)的。
Patternp=Ppile("\\d+");
String[]str=p.split("QQ號是:456456電話是:0532214郵箱是:aaa@");
//結(jié)果:str[0]="QQ號是:"str[1]="電話是:"str[2]="郵箱是:aaa@"
5.3正則表達(dá)式使用Pattern和Matcher類進(jìn)行正則匹配2.Pattern.matcher(Stringregex,CharSequenceinput)
是一個(gè)靜態(tài)方法,用于快速匹配字符串,該方法適合用于只匹配一次,且匹配全部字符串.。Pattern.matches("\\d+","2223");//返回true
Pattern.matches("\\d+","2223aa");//返回false,需要匹配到所有字符串才能返回true,這里aa不能匹配到
Pattern.matches("\\d+","22bb23");//返回false,需要匹配到所有字符串才能返回true,這里bb不能匹配到
5.3正則表達(dá)式使用Pattern和Matcher類進(jìn)行正則匹配3.Pattern.matcher(CharSequenceinput):返回一個(gè)Matcher對象。Matcher類的構(gòu)造方法也是私有的,不能隨意創(chuàng)建,只能通過Pattern.matcher(CharSequenceinput)方法得到該類的實(shí)例.。Patternp=Ppile("\\d+");
Matcherm=p.matcher("22bb23");
m.pattern();//返回p也就是返回該Matcher對象是由哪個(gè)Pattern對象的創(chuàng)建的
5.3正則表達(dá)式使用Pattern和Matcher類進(jìn)行正則匹配4.Matcher.matches()方法、Matcher.lookingAt()方法、Matcher.find()方法Matcher類提供三個(gè)匹配操作方法,三個(gè)方法均返回boolean類型,當(dāng)匹配到時(shí)返回true,沒匹配到則返回false。matches()對整個(gè)字符串進(jìn)行匹配,只有整個(gè)字符串都匹配了才返回true。Patternp=Ppile("\\d+");
Matcherm=p.matcher("22bb23");
m.matches();//返回false,因?yàn)閎b不能被\d+匹配,導(dǎo)致整個(gè)字符串匹配未成功.
Matcherm2=p.matcher("2223");
m2.matches();//返回true,因?yàn)閈d+匹配到了整個(gè)字符串
Patternp=Ppile("\\d+");
Matcherm=p.matcher("22bb23");5.3正則表達(dá)式使用Pattern和Matcher類進(jìn)行正則匹配在Java中,可以使用Pattern和Matcher類進(jìn)行正則匹配。例題5.4在Java字符串部落中,有一位年輕獵手擅長使用正則表達(dá)式來捕捉字符串中的特定模式,請與其共同以下任務(wù):1.創(chuàng)建一個(gè)字符串str,內(nèi)容為:"ThecodeisAB-123andXY-456isthesecretcode."。2.使用正則表達(dá)式找出所有形如"XX-YYY"(其中X和Y是字母,Y是數(shù)字)的模式,并將它們存儲在一個(gè)新的字符串?dāng)?shù)組arr中。3.使用Pattern和Matcher類進(jìn)行正則匹配,找出所有符合要求的模式并輸出。5.3正則表達(dá)式例題5.4Copilot指令:5.3正則表達(dá)式任務(wù)1:創(chuàng)建一個(gè)字符串str,內(nèi)容為:"ThecodeisAB-123andXY-456isthesecretcode."。任務(wù)2:使用正則表達(dá)式找出所有形如"XX-YYY"(其中X和Y是字母,Y是數(shù)字)的模式,并將它們存儲在一個(gè)新的字符串?dāng)?shù)組arr中。任務(wù)3:使用Pattern和Matcher類進(jìn)行正則匹配,找出所有符合要求的模式并輸出。請編寫一個(gè)程序來完成以上任務(wù)。例題5.45.3正則表達(dá)式importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassTest{
publicstaticvoidmain(String[]args){
//Task1
Stringstr="ThecodeisAB-123andXY-456isthesecretcode.";
//Task2
String[]arr=findPatterns(str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度食堂工作人員健康體檢及福利聘用合同
- 二零二五年度汽修廠與汽車維修配件研發(fā)中心合作協(xié)議
- 二零二五年度養(yǎng)老公寓入住與子女共同維護(hù)社區(qū)和諧協(xié)議
- 二零二五年度游艇俱樂部個(gè)人保潔合同
- 二零二五年度房地產(chǎn)項(xiàng)目銷售代理及客戶關(guān)系維護(hù)合同
- 綠茶茶園承包經(jīng)營合同(2025年度)含茶文化體驗(yàn)項(xiàng)目
- 二零二五年度個(gè)人車輛抵押保險(xiǎn)理賠合同
- 二零二五實(shí)習(xí)律師實(shí)習(xí)合同(反壟斷與反不正當(dāng)競爭)
- 2025年度藝人經(jīng)紀(jì)違約金及違約行為處理合同
- 二零二五年度房產(chǎn)交易傭金糾紛解決合同
- 2023年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招面試模擬試題及答案解析
- 海膠生產(chǎn)工作總結(jié)推薦5篇
- 山西省平城區(qū)民政局離婚協(xié)議書匯編
- 蘇科版五年級下冊《勞動(dòng)》全一冊全部課件(共11節(jié))
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計(jì)原則、計(jì)算和檢驗(yàn)
- GB/T 19845-2005機(jī)械振動(dòng)船舶設(shè)備和機(jī)械部件的振動(dòng)試驗(yàn)要求
- GB 9706.14-1997醫(yī)用電氣設(shè)備第2部分:X射線設(shè)備附屬設(shè)備安全專用要求
- 部編版二年級語文下冊第一單元口語交際一語文園地一課件
- 測繪安全生產(chǎn)專題培訓(xùn)課件
- 心肺復(fù)蘇簡易呼吸器使用除顫儀使用
- 油缸裝配作業(yè)指導(dǎo)書
評論
0/150
提交評論