![AI賦能Java語(yǔ)言編程:從入門到高階 課件 第五章 字符串_第1頁(yè)](http://file4.renrendoc.com/view12/M00/25/2E/wKhkGWdRiJyAA1UAAABwRTPdpkg562.jpg)
![AI賦能Java語(yǔ)言編程:從入門到高階 課件 第五章 字符串_第2頁(yè)](http://file4.renrendoc.com/view12/M00/25/2E/wKhkGWdRiJyAA1UAAABwRTPdpkg5622.jpg)
![AI賦能Java語(yǔ)言編程:從入門到高階 課件 第五章 字符串_第3頁(yè)](http://file4.renrendoc.com/view12/M00/25/2E/wKhkGWdRiJyAA1UAAABwRTPdpkg5623.jpg)
![AI賦能Java語(yǔ)言編程:從入門到高階 課件 第五章 字符串_第4頁(yè)](http://file4.renrendoc.com/view12/M00/25/2E/wKhkGWdRiJyAA1UAAABwRTPdpkg5624.jpg)
![AI賦能Java語(yǔ)言編程:從入門到高階 課件 第五章 字符串_第5頁(yè)](http://file4.renrendoc.com/view12/M00/25/2E/wKhkGWdRiJyAA1UAAABwRTPdpkg5625.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
字符串Strings第五章目標(biāo)/OBJECTIVE0102030405領(lǐng)悟字符串的本質(zhì)熟練字符串的操作方法掌握字符串的格式化技術(shù)熟練運(yùn)用字符串方法熟悉正則表達(dá)式的匹配技術(shù)01
初識(shí)字符串
5.1初識(shí)字符串在Java編程語(yǔ)言中,字符串是不可變的,這意味著一旦創(chuàng)建了字符串對(duì)象,就無(wú)法更改其內(nèi)容。字符串在Java中是通過java.lang.String類來(lái)表示的。以下是一些關(guān)于Java字符串的特性:1.不可變性(Immutable):字符串一旦被創(chuàng)建,其內(nèi)容不能被修改。任何對(duì)字符串的操作都會(huì)產(chǎn)生一個(gè)新的字符串對(duì)象。2.String類:字符串是通過String類來(lái)表示的。這個(gè)類提供了許多用于操作字符串的方法,如拼接、比較、截取等。3.字符串字面值:在Java中,可以使用雙引號(hào)創(chuàng)建字符串字面值,例如:"Hello,World!"。這是一種創(chuàng)建字符串對(duì)象的簡(jiǎn)便方式。4.字符串方法:String類提供了許多實(shí)用的方法,如length()(獲取字符串長(zhǎng)度)、charAt(index)(獲取指定位置的字符)、substring(beginIndex,endIndex)(獲取子字符串)等。字符串的特性5.1初識(shí)字符串
一、使用字符串字面值:這是最簡(jiǎn)單和常見的方式,直接使用雙引號(hào)括起來(lái)的字符序列來(lái)創(chuàng)建字符串。Stringstr="Hello,World!";二、使用String類的構(gòu)造方法:可以使用String類的構(gòu)造方法來(lái)創(chuàng)建字符串對(duì)象。這種方法允許在運(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字符串的操作字符串的基本操作三、字符串長(zhǎng)度和字符索引字符串的索引操作可以逐個(gè)訪問字符串中的字符,執(zhí)行各種字符級(jí)別的操作。以上是關(guān)于字符串連接、比較,以及字符串長(zhǎng)度和字符索引的基礎(chǔ)知識(shí)。這些操作是處理字符串時(shí)必不可少的基礎(chǔ)操作,對(duì)于構(gòu)建各種應(yīng)用都具有重要意義。例題5.1在Java字符串部落中,有一位年輕的勇士正要做任務(wù)。請(qǐng)與其共同完成以下任務(wù):1.請(qǐng)定義兩個(gè)字符串變量str1和stri2,其內(nèi)容分別為"Java"和"Programming"。2.使用"+"運(yùn)算符將這兩個(gè)字符串連接起來(lái),并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str3中。3.使用equals()方法比較新的字符串與"JavaProgramming"是否相等,并將比較結(jié)果存儲(chǔ)在一個(gè)布爾變量result中。4.使用charAt()方法獲取str3中索引為5的字符,并將結(jié)果存儲(chǔ)在一個(gè)字符變量ch中。5.輸出變量str3、result、ch的內(nèi)容。5.2字符串的操作例題5.1Copilot指令:5.2字符串的操作任務(wù)1:請(qǐng)定義兩個(gè)字符串變量str1和stri2,其內(nèi)容分別為"Java"和"Programming"。任務(wù)2:使用"+"運(yùn)算符將這兩個(gè)字符串連接起來(lái),并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str3中。任務(wù)3:使用equals()方法比較新的字符串與"JavaProgramming"是否相等,并將比較結(jié)果存儲(chǔ)在一個(gè)布爾變量result中。任務(wù)4:使用charAt()方法獲取新字符串中索引為5的字符,并將結(jié)果存儲(chǔ)在一個(gè)字符變量ch中。任務(wù)5:輸出變量str3、result、ch的內(nèi)容。請(qǐng)編寫一個(gè)程序來(lái)完成以上任務(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)造字符串對(duì)象。其內(nèi)部使用自動(dòng)擴(kuò)容的數(shù)組來(lái)操作字符串?dāng)?shù)據(jù)。StringBuffer類常用構(gòu)造器:1.StringBuffer():構(gòu)造一個(gè)不帶字符的字符串緩沖區(qū),其初始容量為16個(gè)字符。2.StringBuffer(intcapacity):構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。即可對(duì)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容器中字符串的有效長(zhǎng)度。2.int
capacity():該方法可以返回當(dāng)前容器的容量。3.StringBufferappend(...):該方法可以將傳入的形參對(duì)應(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è)簡(jiǎn)易替換,用在字符緩沖區(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ū)。即可對(duì)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.對(duì)于格式化的控制臺(tái)輸出,還可以使用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字符串部落中,有一位年輕的工匠擅長(zhǎng)在雕刻中使用字符串作為圖紋。請(qǐng)與其共同完成以下任務(wù):1.使用String類的構(gòu)造方法創(chuàng)建一個(gè)字符串對(duì)象str1,內(nèi)容為"JavaProgrammingisfun!"。2.使用StringBuilder類將str1轉(zhuǎn)換為全大寫,并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str2中。3.使用StringBuffer類在str2后面添加兩個(gè)感嘆號(hào)"!",并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str3中。4.使用printf方法將str3進(jìn)行格式化輸出,格式為:"Ethan'smasterpiece:%s"。5.2字符串的操作例題5.2Copilot指令:5.2字符串的操作任務(wù)1:使用String類的構(gòu)造方法創(chuàng)建一個(gè)字符串對(duì)象str1,內(nèi)容為"JavaProgrammingisfun!"。任務(wù)2:使用StringBuilder類將str1轉(zhuǎn)換為全大寫,并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str2中。任務(wù)3:使用StringBuffer類在str2后面添加兩個(gè)感嘆號(hào)"!",并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str3中。任務(wù)4:使用printf方法將str3進(jìn)行格式化輸出,格式為:"Ethan'smasterpiece:%s"。請(qǐng)編寫一個(gè)程序來(lái)完成以上任務(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中,字符串類提供了許多方法來(lái)進(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字符串部落中,有一位女孩正在測(cè)試字符串處理能力。請(qǐng)與其共同完成以下任務(wù):1.創(chuàng)建一個(gè)字符串變量str1,內(nèi)容為:"Welcometothejungle!Itgetsworsehereeveryday."。2.使用indexOf()方法找到字符串中第一次出現(xiàn)字符'w'的位置,并將其存儲(chǔ)在一個(gè)整數(shù)變量num中。3.使用substring()方法截取字符串中從第一個(gè)'w'出現(xiàn)位置開始到結(jié)尾的子串,并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str2中。4.使用isEmpty()方法判斷截取得到的子串是否為空,并將判斷結(jié)果存儲(chǔ)在一個(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'的位置,并將其存儲(chǔ)在一個(gè)整數(shù)變量num中。任務(wù)3:使用substring()方法截取字符串中從第一個(gè)'w'出現(xiàn)位置開始到結(jié)尾的子串,并將結(jié)果存儲(chǔ)在一個(gè)新的字符串變量str2中。任務(wù)4:使用isEmpty()方法判斷截取得到的子串是否為空,并將判斷結(jié)果存儲(chǔ)在一個(gè)布爾變量result中。任務(wù)5:輸出變量str1、str2、num、result的內(nèi)容。請(qǐng)編寫一個(gè)程序來(lái)完成以上任務(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á)式的基本概念:字符類:使用方括號(hào)[]表示,用于匹配一個(gè)字符的集合。例如:[abc]表示匹配字符'a'、'b'或'c'。元字符:具有特殊意義的字符,例如^、$、.、*等。例如:^表示匹配字符串的開頭,$表示匹配字符串的結(jié)尾。量詞:用于指定匹配的次數(shù)。例如:*表示零個(gè)或多個(gè),+表示一個(gè)或多個(gè),?表示零個(gè)或一個(gè)。轉(zhuǎn)義字符:使用反斜杠\來(lái)轉(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)來(lái)實(shí)現(xiàn)的。
Patternp=Ppile("\\d+");
String[]str=p.split("QQ號(hào)是:456456電話是:0532214郵箱是:aaa@");
//結(jié)果:str[0]="QQ號(hào)是:"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對(duì)象。Matcher類的構(gòu)造方法也是私有的,不能隨意創(chuàng)建,只能通過Pattern.matcher(CharSequenceinput)方法得到該類的實(shí)例.。Patternp=Ppile("\\d+");
Matcherm=p.matcher("22bb23");
m.pattern();//返回p也就是返回該Matcher對(duì)象是由哪個(gè)Pattern對(duì)象的創(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()對(duì)整個(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字符串部落中,有一位年輕獵手擅長(zhǎng)使用正則表達(dá)式來(lái)捕捉字符串中的特定模式,請(qǐng)與其共同以下任務(wù):1.創(chuàng)建一個(gè)字符串str,內(nèi)容為:"ThecodeisAB-123andXY-456isthesecretcode."。2.使用正則表達(dá)式找出所有形如"XX-YYY"(其中X和Y是字母,Y是數(shù)字)的模式,并將它們存儲(chǔ)在一個(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ù)字)的模式,并將它們存儲(chǔ)在一個(gè)新的字符串?dāng)?shù)組arr中。任務(wù)3:使用Pattern和Matcher類進(jìn)行正則匹配,找出所有符合要求的模式并輸出。請(qǐng)編寫一個(gè)程序來(lái)完成以上任務(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. 本站所有資源如無(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 居家養(yǎng)老服務(wù)合同范本
- 商業(yè)合作保密合同
- 知識(shí)產(chǎn)權(quán)許可合同書范本
- 維修工程合同范本
- 版權(quán)交易平臺(tái)服務(wù)合同
- 無(wú)人駕駛船舶技術(shù)革新與航運(yùn)未來(lái)
- 我國(guó)合同法203條
- 安全生產(chǎn)法律法規(guī)和規(guī)章制度的直接執(zhí)行者是
- 基于IB-LBM的超橢球形顆粒曳力和傳熱特性數(shù)值模擬研究
- 公共就業(yè)服務(wù)職業(yè)規(guī)劃與職業(yè)生涯發(fā)展考核試卷
- 課程思政融入高職院校應(yīng)用文寫作課程教學(xué)路徑探析
- 2024全新鋼結(jié)構(gòu)安全培訓(xùn)
- 2025屆高三數(shù)學(xué)一輪復(fù)習(xí)-分段函數(shù)專項(xiàng)訓(xùn)練【含答案】
- 《工程力學(xué)》課程教學(xué)大綱
- 7.1.2 直觀圖的畫法-【中職專用】高一數(shù)學(xué)教材配套課件(高教版2021·基礎(chǔ)模塊下冊(cè))
- 皮膚癬菌病的分子診斷工具
- SL+575-2012水利水電工程水土保持技術(shù)規(guī)范
- 人美版初中美術(shù)知識(shí)點(diǎn)匯總八年級(jí)全冊(cè)
- 迅雷網(wǎng)盤最最最全影視資源-持續(xù)更新7.26
- 《西方思想經(jīng)典》課件
- 中醫(yī)診療設(shè)備種類目錄
評(píng)論
0/150
提交評(píng)論