版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)組與字符串學(xué)習(xí)目標(biāo)掌握數(shù)組的創(chuàng)建與使用方法。掌握字符串類及其常用的操作方法。案例引入——排序案例說(shuō)明
在實(shí)際生活中,我們會(huì)經(jīng)常按照某一條件對(duì)事物進(jìn)行排序,例如:學(xué)生按身高高低排隊(duì),學(xué)生成績(jī)的排名等。那么在編程中,我們利用程序怎樣實(shí)現(xiàn)排序呢?在程序中,可以首先把這些要排序的數(shù)據(jù)存放到一個(gè)數(shù)組中,再利用循環(huán)來(lái)遍歷數(shù)組中的每個(gè)元素來(lái)判斷其大小。本案例編輯、編譯運(yùn)行后將把一組數(shù)據(jù)按從小到大的順序輸出顯示出來(lái),通過(guò)這個(gè)程序,我們來(lái)了解Java中數(shù)組的應(yīng)用以及字符串的相關(guān)知識(shí)。案例分析
要完成本案例程序,首先要使用文本編輯器編輯源程序,定義一個(gè)數(shù)組并初始化數(shù)組變量,然后循環(huán)判斷數(shù)組中的每個(gè)元素值,根據(jù)判斷結(jié)果將兩個(gè)數(shù)字的位置進(jìn)行對(duì)調(diào),最終實(shí)現(xiàn)這一數(shù)組中的元素按照從小到大的順序重新排列,并輸出排序后的數(shù)組內(nèi)容。最后完成程序的編譯和運(yùn)行。6.2知識(shí)準(zhǔn)備6.2.1一維數(shù)組數(shù)組的聲明方式和一般變量的聲明方式類似,需要聲明數(shù)組變量名和其數(shù)據(jù)類型,并用[]與一般的變量相區(qū)別。Java中聲明一維數(shù)組的格式為:typearrayName[];或type[]arrayName;例:intintArray[];一維數(shù)組的聲明
要?jiǎng)?chuàng)建數(shù)組,為其分配內(nèi)存空間,與創(chuàng)建Java的其他對(duì)象一樣,應(yīng)使用new運(yùn)算符,其格式如下:arrayName=newtype[arraySize];通常,可以將數(shù)組的聲明和創(chuàng)建合并為一條語(yǔ)句,即在數(shù)組聲明的同時(shí)用new運(yùn)算符為數(shù)組分配內(nèi)存空間。其格式如下:typearrayName=newtype[arraySize];
例:doubledArray=newdouble[8];一維數(shù)組的內(nèi)存分配6.2.1一維數(shù)組
(1)在聲明數(shù)組的同時(shí)進(jìn)行初始化。例如:inta[]={1,2,3,4,5};
(2)在聲明并創(chuàng)建數(shù)組后,為每個(gè)元素分別賦值來(lái)對(duì)數(shù)組進(jìn)行初始化。例如:inta[]=newint[5];a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;一維數(shù)組的初始化
當(dāng)定義了一個(gè)數(shù)組,并為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個(gè)元素了。數(shù)組元素的引用方式如下:arrayName[index]此外,由于數(shù)組在Java語(yǔ)言中是作為一個(gè)對(duì)象來(lái)處理的,故每個(gè)數(shù)組都有一個(gè)length屬性,其值為數(shù)組的長(zhǎng)度,可以通過(guò)“數(shù)組名.length”的形式引用。例如,a.length指明數(shù)組a的長(zhǎng)度。
一維數(shù)組的引用【例】編寫程序測(cè)試數(shù)組,程序輸出結(jié)果如圖所示。源程序代碼如下:6.2.2二維數(shù)組
在Java語(yǔ)言中,二維數(shù)組可以看成是一個(gè)一維數(shù)組的數(shù)組,其中一維數(shù)組的每一個(gè)元素又是一個(gè)一維數(shù)組。而更高維的數(shù)組也可以由此類推。二維數(shù)組的定義與一維數(shù)組的定義非常類似,只是在一維數(shù)組的基礎(chǔ)上再加上一對(duì)“[]”,其定義格式如下:typearrayName[][];或type[][]arrayName定義方式typearrayName[][]=newtype[arraySize1][arraySize2];內(nèi)存分配和初始化
arrayName[index1][index2]
其中,index1和index2分別是數(shù)組元素的下標(biāo),每一維的下標(biāo)都從0開(kāi)始,最大值等于每一維的長(zhǎng)度減1。引用6.2.3ArrayList類ArrayList類的使用方法ArryList實(shí)現(xiàn)了可變大小的數(shù)組,即是動(dòng)態(tài)數(shù)組。ArrayListList=newArrayList();for(inti=0;i<10;i++)//給數(shù)組增加10個(gè)int元素
List.Add(i);……//程序做一些處理
List.RemoveAt(5);//將第6個(gè)元素移除
for(inti=0;i<3;i++)//再增加3個(gè)元素
List.Add(i+20);Int32[]values=(Int32[])List.ToArray(typeof(Int32));ArrayList類的幾個(gè)重要方法和屬性默認(rèn)的構(gòu)造器,將會(huì)以默認(rèn)(16)的大小來(lái)初始化內(nèi)部的數(shù)組。用一個(gè)ICollection對(duì)象來(lái)構(gòu)造,并將該集合的元素添加到ArrayList。用指定的大小來(lái)初始化內(nèi)部的數(shù)組。publicArrayList();publicArrayList(ICollection);publicArrayList(int);構(gòu)造器ArrayList類的幾個(gè)重要方法和屬性Count屬性是目前ArrayList類包含的元素的數(shù)量,這個(gè)屬性是只讀的。
Capacity屬性是目前ArrayList類能夠包含的最大數(shù)量,可以手動(dòng)設(shè)置這個(gè)屬性,但是當(dāng)設(shè)置為小于Count值時(shí)會(huì)引發(fā)一個(gè)異常。Count屬性和Capacity屬性
ArrayList類的幾個(gè)重要方法和屬性(1)Add方法用于添加一個(gè)元素到當(dāng)前列表的末尾。(2)AddRange方法用于添加一批元素到當(dāng)前列表的末尾。(3)Remove方法用于刪除一個(gè)元素,通過(guò)元素本身的引用來(lái)刪除。(4)RemoveAt方法用于刪除一個(gè)元素,通過(guò)索引值來(lái)刪除。(5)RemoveRange方法用于刪除一批元素,通過(guò)指定開(kāi)始的索引和刪除的數(shù)量來(lái)刪除。(6)Insert方法用于添加一個(gè)元素到指定位置,列表后面的元素依次往后移動(dòng)。(7)InsertRange方法用于從指定位置開(kāi)始添加一批元素,列表后面的元素依次往后面移動(dòng)。ArrayList類的幾個(gè)重要方法和屬性方法一:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=(Int32[])List.ToArray(typeof(Int32));ArrayList類與數(shù)組轉(zhuǎn)換
方法二:ArrayListList=newArrayList();List.Add(1);List.Add(2);List.Add(3);Int32[]values=newInt32[List.Count];List.CopyTo(values);6.2.4String類String是比較特殊的數(shù)據(jù)類型,它不屬于基本數(shù)據(jù)類型,但是可以和使用基本數(shù)據(jù)類型一樣直接賦值,不使用new運(yùn)算符進(jìn)行實(shí)例化。也可以像其他類型一樣使用new運(yùn)算符進(jìn)行實(shí)例化。下面的代碼都是合法的:Strings1=“abc”;Strings2=newString(“abc”);String對(duì)象的初始化6.2.4String類(1)publicintlength()方法
該方法的作用是返回字符串的長(zhǎng)度,也就是返回字符串中字符的個(gè)數(shù)。中文字符也是一個(gè)字符。(2)publiccharAt(intindex)方法
該方法的作用是按照索引值index(index取值范圍從0到length()-1),獲得字符串中的指定字符。(3)publicintcompareTo(StringanotherString)方法
該方法的作用是比較兩個(gè)字符串的大小,比較的原理是依次比較每個(gè)字符的字符編碼。首先比較兩個(gè)字符串的第一個(gè)字符,如果第一個(gè)字符串的字符編碼大于第二個(gè)的字符串的字符編碼,則返回大于0的值,如果小于則返回小于0的值,如果相等則比較后續(xù)的字符,如果兩個(gè)字符串中的字符編碼完全相同則返回0。String類的常用方法6.2.4String類
(5)publicbooleanstartsWith(Stringprefix)方法和publicbooleanendsWith(Stringsuffix)方法startsWith方法:該方法的作用是判斷字符串是否以某個(gè)字符串作為開(kāi)始,如果以對(duì)應(yīng)的字符串開(kāi)始,則返回true。endsWith方法:該方法的作用是判斷字符串是否以某個(gè)字符串結(jié)尾,如果以對(duì)應(yīng)的字符串結(jié)尾,則返回true。
(6)publicbooleanequals(Objecto)方法
該方法的作用是判斷兩個(gè)字符串對(duì)象的內(nèi)容是否相同。如果相同則返回true,否則返回false。
(7)publicintindexOf()方法
該方法的作用是查找特定字符或字符串在當(dāng)前字符串中的起始位置,如果不存在則返回-1。String類的常用方法6.2.4String類
(8)publicStringreplace(charc1,charc2)方法和publicStringreplaceAll(Strings1,Strings2)方法replace方法的作用是替換字符串中所有指定的字符,然后生成一個(gè)新的字符串。經(jīng)過(guò)該方法調(diào)用以后,原來(lái)的字符串不發(fā)生改變。
(9)publicStringsubstring(intbeginIndex)方法和publicStringsubstring(intbeginIndex,intendIndex)方法substring方法的作用是取字符串中的“子串”,所謂“子串”即字符串中的一部分。
(10)publicStringtoLowerCase()方法和publicStringtoUpperCase()方法toLowerCase方法的作用是將字符串中所有大寫字符都轉(zhuǎn)換為小寫。toUpperCase方法的作用是將字符串中的小寫字符轉(zhuǎn)換為對(duì)應(yīng)的大寫字符。String類的常用方法6.2.4String類
(11)publicStringtrim()方法
該方法的作用是去掉字符串開(kāi)始和結(jié)尾的所有空格,然后形成一個(gè)新的字符串。該方法不去掉字符串中間的空格。(12)publicstaticStringvalueOf()方法
該方法的作用是將其它類型的數(shù)據(jù)轉(zhuǎn)換為字符串類型,其參數(shù)可以是任何數(shù)據(jù)類型(byte類型除外)。需要注意的是,基本數(shù)據(jù)和字符串對(duì)象之間不能使用以前的強(qiáng)制類型轉(zhuǎn)換的語(yǔ)法進(jìn)行轉(zhuǎn)換。String類的常用方法6.2.5StringBuffer類
StringBuffer類和String類一樣也用來(lái)代表字符串,只是由于StringBuffer的內(nèi)部實(shí)現(xiàn)方式和String不同,所以StringBuffer在進(jìn)行字符串處理時(shí),不生成新的對(duì)象,在內(nèi)存使用上要優(yōu)于String類。StringBuffer對(duì)象的初始化StringBuffer對(duì)象的初始化不像String類的初始化一樣,Java提供的有特殊的語(yǔ)法,而通常情況下一般使用構(gòu)造方法進(jìn)行初始化。StringBuffers=newStringBuffer();StringBuffers=newStringBuffer(“abc”);StringBuffers=newStringBuffer(10);6.2.5StringBuffer類StringBuffer的常用方法
(1)publicStringBufferappend(booleanb)方法
該方法的作用是追加內(nèi)容到當(dāng)前StringBuffer對(duì)象的末尾,類似于字符串的連接。
(2)publicStringBufferdeleteCharAt(intindex)方法
該方法的作用是刪除指定位置的字符,然后將剩余的內(nèi)容形成新的字符串。
(3)publicStringBufferinsert(intoffset,booleanb)方法
該方法的作用是在StringBuffer對(duì)象中插入內(nèi)容,然后形成新的字符串。6.2.5StringBuffer類StringBuffer的常用方法
(4)publicStringBufferreverse()方法
該方法的作用是將StringBuffer對(duì)象中的內(nèi)容反轉(zhuǎn),然后形成新的字符串。
(5)publicvoidsetCharAt(intindex,charch)方法
該方法的作用是修改對(duì)象中索引值為index位置的字符為新的字符ch。
(6)publicStringBufferreplace(intstart,intend,Stringstr)方法
該方法的作用是將StringBuffer對(duì)象中的內(nèi)容從start位置開(kāi)始,到end結(jié)束的字符串以str代替。6.2.6StringTokenizer類StringTokenizer的初始化StringTokenizer類有兩個(gè)常用構(gòu)造方法:StringTokenizer(Strings):為字符串s構(gòu)造一個(gè)分析器。StringTokenizer(Strings,Stringdelim):為字符串s構(gòu)造一個(gè)分析器。參數(shù)delim中的字符被作為分隔符。6.2.6StringTokenizer類StringTokenizer的常用方法
(1)countTokens(),返回StringTokenizer類包含的元素個(gè)數(shù)。
(2)hasMoreElements(),判斷是否還有更多元素。
(3)hasMoreTokens(),判斷是否還有更多元素。
(4)nextElement(),返回StringTokenizer類的下一個(gè)元素。
(5)nextToken(),返回StringTokenizer類的下一個(gè)元素。6.3案例實(shí)施6.3.1編寫源代碼6.3.2編譯源代碼6.3.3運(yùn)行程序6.4訓(xùn)練與實(shí)戰(zhàn)訓(xùn)練內(nèi)容楊輝三角形有以下特點(diǎn):每行的元素個(gè)數(shù)等于該行的行號(hào),即第n行有n個(gè)元素;且第1行只有一個(gè)元素1;從第2行開(kāi)始每行的第1個(gè)和最后一個(gè)元素為1,每行的第n個(gè)元素是上一行第n-1個(gè)元素和第n個(gè)元素的和。訓(xùn)練目的輸出楊輝三角形的前4行。6.4.1楊輝三角形6.4.1楊輝三角形訓(xùn)練過(guò)程
1.編寫源代碼Yang.java
2.編譯和運(yùn)行程序在命令提示符窗口下,將路徑切換到D:\project\ch06,然后輸入:javacYang.java編譯完成后,輸入:javaYang按回車鍵6.4.2身份證號(hào)碼中的秘密訓(xùn)練內(nèi)容一個(gè)身份證號(hào)碼中包含著本人所在地區(qū)、出生日期等重要信息。在開(kāi)發(fā)一個(gè)軟件的過(guò)程中,要從身份證號(hào)碼中取出一個(gè)人的生日信息。訓(xùn)練過(guò)程
1.編寫源代碼2.編譯和運(yùn)行程序在命令提示符窗口下,將路徑切換到D:\project\ch06,然后輸入:javacTes
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年手術(shù)顯微鏡寬視野設(shè)計(jì)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年戶外拓展器材租賃行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年塑木室外儲(chǔ)物系統(tǒng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年數(shù)控仿形銑床行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年房車美食烹飪課程企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年戶外防水沙發(fā)套裝行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年增強(qiáng)現(xiàn)實(shí)(AR)教育應(yīng)用企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年地方特色糟鹵鴨罐頭行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年地方特色調(diào)味品行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年可折疊收納游戲桌行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 攪拌車駕駛員安全培訓(xùn)
- 船舶管理(電子電氣員)5.船舶安全用電
- 中儲(chǔ)糧油脂公司考試題
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 車輛車身結(jié)構(gòu)設(shè)計(jì)的創(chuàng)新思路
- 寒假開(kāi)學(xué)收心主題班會(huì)課件
- 完全版的公司治理規(guī)章制度
- 中醫(yī)護(hù)理查房制度
- 數(shù)據(jù)采集自動(dòng)化流程
- 家庭園藝資材蘊(yùn)藏商機(jī)
- 幼兒園食品營(yíng)養(yǎng)搭配與食品安全培訓(xùn)
評(píng)論
0/150
提交評(píng)論