java程序設(shè)計模塊6_第1頁
java程序設(shè)計模塊6_第2頁
java程序設(shè)計模塊6_第3頁
java程序設(shè)計模塊6_第4頁
java程序設(shè)計模塊6_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)組與字符串學(xué)習(xí)目標(biāo)掌握數(shù)組的創(chuàng)建與使用方法。掌握字符串類及其常用的操作方法。案例引入——排序案例說明

在實(shí)際生活中,我們會經(jīng)常按照某一條件對事物進(jìn)行排序,例如:學(xué)生按身高高低排隊,學(xué)生成績的排名等。那么在編程中,我們利用程序怎樣實(shí)現(xiàn)排序呢?在程序中,可以首先把這些要排序的數(shù)據(jù)存放到一個數(shù)組中,再利用循環(huán)來遍歷數(shù)組中的每個元素來判斷其大小。本案例編輯、編譯運(yùn)行后將把一組數(shù)據(jù)按從小到大的順序輸出顯示出來,通過這個程序,我們來了解Java中數(shù)組的應(yīng)用以及字符串的相關(guān)知識。案例分析

要完成本案例程序,首先要使用文本編輯器編輯源程序,定義一個數(shù)組并初始化數(shù)組變量,然后循環(huán)判斷數(shù)組中的每個元素值,根據(jù)判斷結(jié)果將兩個數(shù)字的位置進(jìn)行對調(diào),最終實(shí)現(xiàn)這一數(shù)組中的元素按照從小到大的順序重新排列,并輸出排序后的數(shù)組內(nèi)容。最后完成程序的編譯和運(yùn)行。6.2知識準(zhǔn)備6.2.1一維數(shù)組數(shù)組的聲明方式和一般變量的聲明方式類似,需要聲明數(shù)組變量名和其數(shù)據(jù)類型,并用[]與一般的變量相區(qū)別。Java中聲明一維數(shù)組的格式為:typearrayName[];或type[]arrayName;例:intintArray[];一維數(shù)組的聲明

要創(chuàng)建數(shù)組,為其分配內(nèi)存空間,與創(chuàng)建Java的其他對象一樣,應(yīng)使用new運(yùn)算符,其格式如下:arrayName=newtype[arraySize];通常,可以將數(shù)組的聲明和創(chuàng)建合并為一條語句,即在數(shù)組聲明的同時用new運(yùn)算符為數(shù)組分配內(nèi)存空間。其格式如下:typearrayName=newtype[arraySize];

例:doubledArray=newdouble[8];一維數(shù)組的內(nèi)存分配6.2.1一維數(shù)組

(1)在聲明數(shù)組的同時進(jìn)行初始化。例如:inta[]={1,2,3,4,5};

(2)在聲明并創(chuàng)建數(shù)組后,為每個元素分別賦值來對數(shù)組進(jìn)行初始化。例如:inta[]=newint[5];a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;一維數(shù)組的初始化

當(dāng)定義了一個數(shù)組,并為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個元素了。數(shù)組元素的引用方式如下:arrayName[index]此外,由于數(shù)組在Java語言中是作為一個對象來處理的,故每個數(shù)組都有一個length屬性,其值為數(shù)組的長度,可以通過“數(shù)組名.length”的形式引用。例如,a.length指明數(shù)組a的長度。

一維數(shù)組的引用【例】編寫程序測試數(shù)組,程序輸出結(jié)果如圖所示。源程序代碼如下:6.2.2二維數(shù)組

在Java語言中,二維數(shù)組可以看成是一個一維數(shù)組的數(shù)組,其中一維數(shù)組的每一個元素又是一個一維數(shù)組。而更高維的數(shù)組也可以由此類推。二維數(shù)組的定義與一維數(shù)組的定義非常類似,只是在一維數(shù)組的基礎(chǔ)上再加上一對“[]”,其定義格式如下:typearrayName[][];或type[][]arrayName定義方式typearrayName[][]=newtype[arraySize1][arraySize2];內(nèi)存分配和初始化

arrayName[index1][index2]

其中,index1和index2分別是數(shù)組元素的下標(biāo),每一維的下標(biāo)都從0開始,最大值等于每一維的長度減1。引用6.2.3ArrayList類ArrayList類的使用方法ArryList實(shí)現(xiàn)了可變大小的數(shù)組,即是動態(tài)數(shù)組。ArrayListList=newArrayList();for(inti=0;i<10;i++)//給數(shù)組增加10個int元素

List.Add(i);……//程序做一些處理

List.RemoveAt(5);//將第6個元素移除

for(inti=0;i<3;i++)//再增加3個元素

List.Add(i+20);Int32[]values=(Int32[])List.ToArray(typeof(Int32));ArrayList類的幾個重要方法和屬性默認(rèn)的構(gòu)造器,將會以默認(rèn)(16)的大小來初始化內(nèi)部的數(shù)組。用一個ICollection對象來構(gòu)造,并將該集合的元素添加到ArrayList。用指定的大小來初始化內(nèi)部的數(shù)組。publicArrayList();publicArrayList(ICollection);publicArrayList(int);構(gòu)造器ArrayList類的幾個重要方法和屬性Count屬性是目前ArrayList類包含的元素的數(shù)量,這個屬性是只讀的。

Capacity屬性是目前ArrayList類能夠包含的最大數(shù)量,可以手動設(shè)置這個屬性,但是當(dāng)設(shè)置為小于Count值時會引發(fā)一個異常。Count屬性和Capacity屬性

ArrayList類的幾個重要方法和屬性(1)Add方法用于添加一個元素到當(dāng)前列表的末尾。(2)AddRange方法用于添加一批元素到當(dāng)前列表的末尾。(3)Remove方法用于刪除一個元素,通過元素本身的引用來刪除。(4)RemoveAt方法用于刪除一個元素,通過索引值來刪除。(5)RemoveRange方法用于刪除一批元素,通過指定開始的索引和刪除的數(shù)量來刪除。(6)Insert方法用于添加一個元素到指定位置,列表后面的元素依次往后移動。(7)InsertRange方法用于從指定位置開始添加一批元素,列表后面的元素依次往后面移動。ArrayList類的幾個重要方法和屬性方法一: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對象的初始化6.2.4String類(1)publicintlength()方法

該方法的作用是返回字符串的長度,也就是返回字符串中字符的個數(shù)。中文字符也是一個字符。(2)publiccharAt(intindex)方法

該方法的作用是按照索引值index(index取值范圍從0到length()-1),獲得字符串中的指定字符。(3)publicintcompareTo(StringanotherString)方法

該方法的作用是比較兩個字符串的大小,比較的原理是依次比較每個字符的字符編碼。首先比較兩個字符串的第一個字符,如果第一個字符串的字符編碼大于第二個的字符串的字符編碼,則返回大于0的值,如果小于則返回小于0的值,如果相等則比較后續(xù)的字符,如果兩個字符串中的字符編碼完全相同則返回0。String類的常用方法6.2.4String類

(5)publicbooleanstartsWith(Stringprefix)方法和publicbooleanendsWith(Stringsuffix)方法startsWith方法:該方法的作用是判斷字符串是否以某個字符串作為開始,如果以對應(yīng)的字符串開始,則返回true。endsWith方法:該方法的作用是判斷字符串是否以某個字符串結(jié)尾,如果以對應(yīng)的字符串結(jié)尾,則返回true。

(6)publicbooleanequals(Objecto)方法

該方法的作用是判斷兩個字符串對象的內(nèi)容是否相同。如果相同則返回true,否則返回false。

(7)publicintindexOf()方法

該方法的作用是查找特定字符或字符串在當(dāng)前字符串中的起始位置,如果不存在則返回-1。String類的常用方法6.2.4String類

(8)publicStringreplace(charc1,charc2)方法和publicStringreplaceAll(Strings1,Strings2)方法replace方法的作用是替換字符串中所有指定的字符,然后生成一個新的字符串。經(jīng)過該方法調(diào)用以后,原來的字符串不發(fā)生改變。

(9)publicStringsubstring(intbeginIndex)方法和publicStringsubstring(intbeginIndex,intendIndex)方法substring方法的作用是取字符串中的“子串”,所謂“子串”即字符串中的一部分。

(10)publicStringtoLowerCase()方法和publicStringtoUpperCase()方法toLowerCase方法的作用是將字符串中所有大寫字符都轉(zhuǎn)換為小寫。toUpperCase方法的作用是將字符串中的小寫字符轉(zhuǎn)換為對應(yīng)的大寫字符。String類的常用方法6.2.4String類

(11)publicStringtrim()方法

該方法的作用是去掉字符串開始和結(jié)尾的所有空格,然后形成一個新的字符串。該方法不去掉字符串中間的空格。(12)publicstaticStringvalueOf()方法

該方法的作用是將其它類型的數(shù)據(jù)轉(zhuǎn)換為字符串類型,其參數(shù)可以是任何數(shù)據(jù)類型(byte類型除外)。需要注意的是,基本數(shù)據(jù)和字符串對象之間不能使用以前的強(qiáng)制類型轉(zhuǎn)換的語法進(jìn)行轉(zhuǎn)換。String類的常用方法6.2.5StringBuffer類

StringBuffer類和String類一樣也用來代表字符串,只是由于StringBuffer的內(nèi)部實(shí)現(xiàn)方式和String不同,所以StringBuffer在進(jìn)行字符串處理時,不生成新的對象,在內(nèi)存使用上要優(yōu)于String類。StringBuffer對象的初始化StringBuffer對象的初始化不像String類的初始化一樣,Java提供的有特殊的語法,而通常情況下一般使用構(gòu)造方法進(jìn)行初始化。StringBuffers=newStringBuffer();StringBuffers=newStringBuffer(“abc”);StringBuffers=newStringBuffer(10);6.2.5StringBuffer類StringBuffer的常用方法

(1)publicStringBufferappend(booleanb)方法

該方法的作用是追加內(nèi)容到當(dāng)前StringBuffer對象的末尾,類似于字符串的連接。

(2)publicStringBufferdeleteCharAt(intindex)方法

該方法的作用是刪除指定位置的字符,然后將剩余的內(nèi)容形成新的字符串。

(3)publicStringBufferinsert(intoffset,booleanb)方法

該方法的作用是在StringBuffer對象中插入內(nèi)容,然后形成新的字符串。6.2.5StringBuffer類StringBuffer的常用方法

(4)publicStringBufferreverse()方法

該方法的作用是將StringBuffer對象中的內(nèi)容反轉(zhuǎn),然后形成新的字符串。

(5)publicvoidsetCharAt(intindex,charch)方法

該方法的作用是修改對象中索引值為index位置的字符為新的字符ch。

(6)publicStringBufferreplace(intstart,intend,Stringstr)方法

該方法的作用是將StringBuffer對象中的內(nèi)容從start位置開始,到end結(jié)束的字符串以str代替。6.2.6StringTokenizer類StringTokenizer的初始化StringTokenizer類有兩個常用構(gòu)造方法:StringTokenizer(Strings):為字符串s構(gòu)造一個分析器。StringTokenizer(Strings,Stringdelim):為字符串s構(gòu)造一個分析器。參數(shù)delim中的字符被作為分隔符。6.2.6StringTokenizer類StringTokenizer的常用方法

(1)countTokens(),返回StringTokenizer類包含的元素個數(shù)。

(2)hasMoreElements(),判斷是否還有更多元素。

(3)hasMoreTokens(),判斷是否還有更多元素。

(4)nextElement(),返回StringTokenizer類的下一個元素。

(5)nextToken(),返回StringTokenizer類的下一個元素。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):每行的元素個數(shù)等于該行的行號,即第n行有n個元素;且第1行只有一個元素1;從第2行開始每行的第1個和最后一個元素為1,每行的第n個元素是上一行第n-1個元素和第n個元素的和。訓(xùn)練目的輸出楊輝三角形的前4行。6.4.1楊輝三角形6.4.1楊輝三角形訓(xùn)練過程

1.編寫源代碼Yang.java

2.編譯和運(yùn)行程序在命令提示符窗口下,將路徑切換到D:\project\ch06,然后輸入:javacYang.java編譯完成后,輸入:javaYang按回車鍵6.4.2身份證號碼中的秘密訓(xùn)練內(nèi)容一個身份證號碼中包含著本人所在地區(qū)、出生日期等重要信息。在開發(fā)一個軟件的過程中,要從身份證號碼中取出一個人的生日信息。訓(xùn)練過程

1.編寫源代碼2.編譯和運(yùn)行程序在命令提示符窗口下,將路徑切換到D:\project\ch06,然后輸入:javacTes

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論