第3章數(shù)組與字符串_第1頁
第3章數(shù)組與字符串_第2頁
第3章數(shù)組與字符串_第3頁
第3章數(shù)組與字符串_第4頁
第3章數(shù)組與字符串_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第3 3章章數(shù)組與字符串?dāng)?shù)組與字符串 在程序設(shè)計(jì)中,數(shù)組類型是一種表示數(shù)據(jù)集合在程序設(shè)計(jì)中,數(shù)組類型是一種表示數(shù)據(jù)集合的常用手段,字符串是一種表示姓名、提示信的常用手段,字符串是一種表示姓名、提示信息等類似數(shù)據(jù)的常見形式。在息等類似數(shù)據(jù)的常見形式。在JavaJava語言中,為語言中,為數(shù)組類型與字符串都定義了相應(yīng)的標(biāo)準(zhǔn)類,數(shù)組類型與字符串都定義了相應(yīng)的標(biāo)準(zhǔn)類,ArraysArrays是實(shí)現(xiàn)數(shù)組類型的組織與操作的類,是實(shí)現(xiàn)數(shù)組類型的組織與操作的類,StringString是實(shí)現(xiàn)字符串存儲(chǔ)與操作的類。這樣既是實(shí)現(xiàn)字符串存儲(chǔ)與操作的類。這樣既體現(xiàn)了體現(xiàn)了JavaJava面向?qū)ο蟮耐暾?,又增?qiáng)了這

2、兩面向?qū)ο蟮耐暾?,又增?qiáng)了這兩種數(shù)據(jù)的操作能力,為簡(jiǎn)化程序設(shè)計(jì)過程,提種數(shù)據(jù)的操作能力,為簡(jiǎn)化程序設(shè)計(jì)過程,提高程序的可靠性提供了可能性。高程序的可靠性提供了可能性。 3.1 3.1 數(shù)組類型數(shù)組類型 根據(jù)數(shù)據(jù)類型的構(gòu)成方式不同,可以將所有的根據(jù)數(shù)據(jù)類型的構(gòu)成方式不同,可以將所有的數(shù)據(jù)類型分成兩個(gè)類別:數(shù)據(jù)類型分成兩個(gè)類別:簡(jiǎn)單數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型和和復(fù)合復(fù)合數(shù)據(jù)類型數(shù)據(jù)類型。所謂。所謂簡(jiǎn)單簡(jiǎn)單是指用于組織單值數(shù)據(jù)的是指用于組織單值數(shù)據(jù)的數(shù)據(jù)類型;所謂數(shù)據(jù)類型;所謂復(fù)合復(fù)合是指組織數(shù)據(jù)集合的數(shù)據(jù)是指組織數(shù)據(jù)集合的數(shù)據(jù)類型類型. . 由惟一確定某個(gè)數(shù)組元素所需要的下標(biāo)個(gè)數(shù)可由惟一確定某個(gè)數(shù)組元

3、素所需要的下標(biāo)個(gè)數(shù)可以將數(shù)組分為以將數(shù)組分為一維數(shù)組一維數(shù)組、二維數(shù)組二維數(shù)組及多維數(shù)組。及多維數(shù)組。 3.1.1 3.1.1 一維數(shù)組一維數(shù)組 所謂一維數(shù)組是指每個(gè)元素由一個(gè)下標(biāo)值惟一所謂一維數(shù)組是指每個(gè)元素由一個(gè)下標(biāo)值惟一確定的數(shù)組類型。這是一種使用十分頻繁的數(shù)確定的數(shù)組類型。這是一種使用十分頻繁的數(shù)據(jù)類型,它的特征明顯、操作方便、易于理解,據(jù)類型,它的特征明顯、操作方便、易于理解,是每個(gè)程序設(shè)計(jì)者在編寫程序的過程中無法回是每個(gè)程序設(shè)計(jì)者在編寫程序的過程中無法回避使用的一種數(shù)據(jù)類型。避使用的一種數(shù)據(jù)類型。 1. 1. 一維數(shù)組的定義一維數(shù)組的定義 定義數(shù)組型變量的語法格式為:定義數(shù)組型變量

4、的語法格式為: 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名; ; 或者或者 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名 ; ; “數(shù)組元素類型數(shù)組元素類型”為組成一維數(shù)組的元素類型,為組成一維數(shù)組的元素類型,“數(shù)組型變量名數(shù)組型變量名”為定義的數(shù)組型變量名稱,為定義的數(shù)組型變量名稱,它應(yīng)該符合它應(yīng)該符合JavaJava語言的標(biāo)識(shí)符命名規(guī)則,建議語言的標(biāo)識(shí)符命名規(guī)則,建議遵守遵守JavaJava語言的標(biāo)識(shí)符命名規(guī)范。語言的標(biāo)識(shí)符命名規(guī)范。 int intArray; 或者或者 int intArray ; float floatArray; 或者或者 float floatArr

5、ay ; String stringArray; 或者或者 String stringArray ; 建議使用前一種格式風(fēng)格,這種格式風(fēng)格的好處是建議使用前一種格式風(fēng)格,這種格式風(fēng)格的好處是將數(shù)據(jù)類型集中表示,即前面是數(shù)據(jù)類型,后面是將數(shù)據(jù)類型集中表示,即前面是數(shù)據(jù)類型,后面是變量名稱,而后面一種格式風(fēng)格的數(shù)據(jù)類型被變量變量名稱,而后面一種格式風(fēng)格的數(shù)據(jù)類型被變量名稱分隔為前后兩個(gè)部分。名稱分隔為前后兩個(gè)部分。Java語言保留這種定義語言保留這種定義格式風(fēng)格完全是為了尊重人們的使用習(xí)慣。格式風(fēng)格完全是為了尊重人們的使用習(xí)慣。2. 2. 一維數(shù)組的創(chuàng)建一維數(shù)組的創(chuàng)建 一個(gè)數(shù)組可以包含多個(gè)元素,所

6、含的元素?cái)?shù)目一個(gè)數(shù)組可以包含多個(gè)元素,所含的元素?cái)?shù)目被稱為數(shù)組的長(zhǎng)度,數(shù)組中也可以沒有任何元被稱為數(shù)組的長(zhǎng)度,數(shù)組中也可以沒有任何元素,此時(shí)稱為空數(shù)組。正因?yàn)槿绱耍趧?chuàng)建數(shù)素,此時(shí)稱為空數(shù)組。正因?yàn)槿绱?,在?chuàng)建數(shù)組時(shí)需要給出組成數(shù)組的元素?cái)?shù)目。下面是利組時(shí)需要給出組成數(shù)組的元素?cái)?shù)目。下面是利用用newnew運(yùn)算符創(chuàng)建數(shù)組的語法格式:運(yùn)算符創(chuàng)建數(shù)組的語法格式: newnew數(shù)組元素類型數(shù)組元素類型 數(shù)組元素?cái)?shù)目數(shù)組元素?cái)?shù)目; “數(shù)組元素類型數(shù)組元素類型”為組成數(shù)組的元素類型,為組成數(shù)組的元素類型,“數(shù)組元素?cái)?shù)目數(shù)組元素?cái)?shù)目”為組成數(shù)組的元素?cái)?shù)目,這為組成數(shù)組的元素?cái)?shù)目,這個(gè)值要求大于或等于零。個(gè)

7、值要求大于或等于零。 intArrayintArray由由100100個(gè)個(gè)intint類型的元素組成類型的元素組成intArray = intArray = new int100; new int100; floatArrayfloatArray由由5050個(gè)個(gè)floatfloat類型的元素組成類型的元素組成floatArray = new float50; stringArrayfloatArray = new float50; stringArray由由1010個(gè)個(gè)StringString類型的元素組成類型的元素組成stringArray = new String10;stringArra

8、y = new String10;也可以將數(shù)組的定義與創(chuàng)建合并也可以將數(shù)組的定義與創(chuàng)建合并char name = new char30;char name = new char30;double doubleData = new double10; double doubleData = new double10; 0123426272829name0123456789doubleData3. 3. 一維數(shù)組的初始化一維數(shù)組的初始化 在創(chuàng)建數(shù)組的同時(shí),為數(shù)組元素賦予初始值的過程被稱為在創(chuàng)建數(shù)組的同時(shí),為數(shù)組元素賦予初始值的過程被稱為數(shù)數(shù)組的初始化組的初始化。 int intArray = 10

9、,20,30,40,50,60,70,80,90,100; 操作過程:首先為操作過程:首先為intArray數(shù)組分配數(shù)組分配10個(gè)個(gè)int型元素所需要占型元素所需要占用的存儲(chǔ)空間,然后將初始值用的存儲(chǔ)空間,然后將初始值10,20,30,40,50,60,70,80,90,100依次賦給依次賦給intArray0intArray9。3. 3. 一維數(shù)組的初始化一維數(shù)組的初始化 String name = zhang, wang, li, zhao; 由于在由于在Java語言中字符串屬于語言中字符串屬于String類對(duì)象,所以這條語句類對(duì)象,所以這條語句的操作過程會(huì)稍復(fù)雜一些。首先,要為的操作過程

10、會(huì)稍復(fù)雜一些。首先,要為4個(gè)個(gè)String型引用分型引用分配存儲(chǔ)空間,然后再根據(jù)配存儲(chǔ)空間,然后再根據(jù)4個(gè)初始值為個(gè)初始值為4個(gè)字符串分配存儲(chǔ)空個(gè)字符串分配存儲(chǔ)空間,最后將初始值間,最后將初始值z(mì)hang,wang,li,zhao 的引用的引用依次賦給依次賦給name0name3。 4. 4. 一維數(shù)組元素的訪問一維數(shù)組元素的訪問 創(chuàng)建數(shù)組后,就可以通過引用訪問數(shù)組元素以達(dá)到對(duì)數(shù)組創(chuàng)建數(shù)組后,就可以通過引用訪問數(shù)組元素以達(dá)到對(duì)數(shù)組操作的目的。操作的目的。 JavaJava訪問數(shù)組元素的格式為:訪問數(shù)組元素的格式為: arrayNamearrayName下標(biāo)表達(dá)式下標(biāo)表達(dá)式 在運(yùn)行程序時(shí),在運(yùn)行

11、程序時(shí),JavaJava語言會(huì)嚴(yán)格地檢查每個(gè)語言會(huì)嚴(yán)格地檢查每個(gè)“下標(biāo)表達(dá)式下標(biāo)表達(dá)式”的取值范圍,一旦發(fā)生越界就會(huì)拋出的取值范圍,一旦發(fā)生越界就會(huì)拋出ArrayIndexOutOfBoundsExceptionArrayIndexOutOfBoundsException異常。異常。 當(dāng)需要對(duì)數(shù)組中的每個(gè)元素進(jìn)行操作時(shí),可以利用數(shù)當(dāng)需要對(duì)數(shù)組中的每個(gè)元素進(jìn)行操作時(shí),可以利用數(shù)組對(duì)象中封裝的組對(duì)象中封裝的lengthlength屬性獲得當(dāng)前數(shù)組中包含的元屬性獲得當(dāng)前數(shù)組中包含的元素?cái)?shù)目。素?cái)?shù)目。 int value = 10,9,40,20,12,8,9; for (int i = 0, sum

12、 = 0; i value.length; i+) sum += valuei; 在在forfor語句中,將循環(huán)上界設(shè)定為語句中,將循環(huán)上界設(shè)定為value.lengthvalue.length的好處的好處是:當(dāng)是:當(dāng)valuevalue數(shù)組的長(zhǎng)度發(fā)生變化時(shí)不需要修改程序的數(shù)組的長(zhǎng)度發(fā)生變化時(shí)不需要修改程序的其他地方。其他地方。 在在JDK 5.0版本中增加了一個(gè)專門用于操作數(shù)據(jù)集合的循環(huán)版本中增加了一個(gè)專門用于操作數(shù)據(jù)集合的循環(huán)流程控制語句流程控制語句for each,其功能更加強(qiáng)大、書寫更加簡(jiǎn)潔。,其功能更加強(qiáng)大、書寫更加簡(jiǎn)潔。這種語句的書寫格式為:這種語句的書寫格式為: for (數(shù)組元

13、素型變量數(shù)組元素型變量 :數(shù)組型變量:數(shù)組型變量) 語句語句; “數(shù)組元素型變量數(shù)組元素型變量”是與數(shù)組元素同類型的變量,是與數(shù)組元素同類型的變量, “數(shù)組型變量數(shù)組型變量”是一個(gè)表示數(shù)組引用的變量。是一個(gè)表示數(shù)組引用的變量。 例如,可以將上述數(shù)組元素累加的程序段改寫成:例如,可以將上述數(shù)組元素累加的程序段改寫成: int sum = 0; for (int v : value) sum += v; 這條語句的執(zhí)行過程可以描述為:循環(huán)訪問這條語句的執(zhí)行過程可以描述為:循環(huán)訪問value數(shù)組中的每數(shù)組中的每個(gè)元素并將其內(nèi)容累加到變量個(gè)元素并將其內(nèi)容累加到變量sum中。中。 5. 5. 一維數(shù)組的

14、復(fù)制一維數(shù)組的復(fù)制 在在Java語言中,數(shù)組型變量可以實(shí)現(xiàn)兩種形式的復(fù)制語言中,數(shù)組型變量可以實(shí)現(xiàn)兩種形式的復(fù)制操作。操作。 第一種復(fù)制操作被稱為數(shù)組引用的復(fù)制第一種復(fù)制操作被稱為數(shù)組引用的復(fù)制 int firstArray = 10,20,30,40,50,60; int secondArray; secondArray = firstArray; 這條賦值語句的執(zhí)行效果是將這條賦值語句的執(zhí)行效果是將firstArray的引用信息賦的引用信息賦給給secondArray,此時(shí),此時(shí)firstArray與與secondArray共同引共同引用一個(gè)數(shù)組。用一個(gè)數(shù)組。 arraycopy是是Sys

15、tem類中的一個(gè)靜態(tài)方法。類中的一個(gè)靜態(tài)方法。 定義格式為:定義格式為: void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 其中,其中,src為被拷貝的原始數(shù)組,為被拷貝的原始數(shù)組,srcPos為原始數(shù)為原始數(shù)組中將要拷貝的數(shù)組元素的起始位置,組中將要拷貝的數(shù)組元素的起始位置,dest為目為目標(biāo)數(shù)組,標(biāo)數(shù)組,destPos為拷貝到目標(biāo)數(shù)組中后放置數(shù)組為拷貝到目標(biāo)數(shù)組中后放置數(shù)組元素的起始位置,元素的起始位置,length為拷貝的數(shù)組元素?cái)?shù)目。為拷貝的數(shù)組元素?cái)?shù)目。int arraySrc =

16、 5,10,15,20,25,30,35,40,45,50;int arrayDest = new int10;執(zhí)行語句:執(zhí)行語句:System.arraycopy(arraySrc, 0, arrayDest, 0, 10) ; 舉例:舉例:假設(shè)有假設(shè)有n n個(gè)候選人參加學(xué)生會(huì)主席的競(jìng)選,最后將根個(gè)候選人參加學(xué)生會(huì)主席的競(jìng)選,最后將根據(jù)學(xué)生的投票情況決定學(xué)生會(huì)主席的獲勝人選。編寫一個(gè)程據(jù)學(xué)生的投票情況決定學(xué)生會(huì)主席的獲勝人選。編寫一個(gè)程序,完成選票的統(tǒng)計(jì)工作,并顯示最終的獲勝者。序,完成選票的統(tǒng)計(jì)工作,并顯示最終的獲勝者。 分析:分析:為了利用程序解決這個(gè)問題,假設(shè)為每位候選人編號(hào)為了利用程

17、序解決這個(gè)問題,假設(shè)為每位候選人編號(hào)1. n1. n。如果希望為某位候選人投票時(shí),只需要從鍵盤上輸。如果希望為某位候選人投票時(shí),只需要從鍵盤上輸入這位候選人的編號(hào)即可。入這位候選人的編號(hào)即可。 每位候選人所獲的選票的存儲(chǔ)在一個(gè)含有每位候選人所獲的選票的存儲(chǔ)在一個(gè)含有n n個(gè)元素的一維數(shù)個(gè)元素的一維數(shù)組中。由于含有組中。由于含有n n個(gè)元素的一維數(shù)組的下標(biāo)范圍在個(gè)元素的一維數(shù)組的下標(biāo)范圍在0.n-10.n-1之之間,所以,在程序?qū)崿F(xiàn)中,需要將候選人的編號(hào)與數(shù)組元素間,所以,在程序?qū)崿F(xiàn)中,需要將候選人的編號(hào)與數(shù)組元素的下標(biāo)做一個(gè)映射,即的下標(biāo)做一個(gè)映射,即1 1號(hào)候選人在數(shù)組中用下標(biāo)號(hào)候選人在數(shù)組

18、中用下標(biāo)0 0表示,表示,2 2號(hào)候選人在數(shù)組中用下標(biāo)號(hào)候選人在數(shù)組中用下標(biāo)1 1表示,依此類推,表示,依此類推,n n號(hào)候選人在數(shù)號(hào)候選人在數(shù)組中用下標(biāo)組中用下標(biāo)n-1n-1表示。表示。 在在JavaJava語言中,一維數(shù)組的元素可以屬于任意語言中,一維數(shù)組的元素可以屬于任意類型,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。也類型,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。也就是說,一維數(shù)組的元素又可以是一維數(shù)組類就是說,一維數(shù)組的元素又可以是一維數(shù)組類型,這就支持了二維數(shù)組,乃至多維數(shù)組的概型,這就支持了二維數(shù)組,乃至多維數(shù)組的概念。由于可以借助于二維數(shù)組表示具有二維關(guān)念。由于可以借助于二維數(shù)組表示具有二維關(guān)系

19、的數(shù)據(jù),所以它的應(yīng)用十分廣泛。系的數(shù)據(jù),所以它的應(yīng)用十分廣泛。 3.1.2 3.1.2 二維數(shù)組二維數(shù)組1. 1. 二維數(shù)組的定義與創(chuàng)建二維數(shù)組的定義與創(chuàng)建 JavaJava語言規(guī)定,二維數(shù)組的定義格式為:語言規(guī)定,二維數(shù)組的定義格式為: 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名; ; 或者或者 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名 ; ; 或者或者 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名 ; ; “數(shù)組元素類型數(shù)組元素類型”為二維數(shù)組的元素類型,為二維數(shù)組的元素類型, “數(shù)組型變量名數(shù)組型變量名”為二維數(shù)組型變量名稱。為二維數(shù)組型變量名稱。 int int

20、Array; float floatArray ; double doubleArray ; 在這在這3種定義格式中,建議使用第一種格式。第種定義格式中,建議使用第一種格式。第二種格式完全是為了尊重那些習(xí)慣使用二種格式完全是為了尊重那些習(xí)慣使用C/C+定定義格式的人們而保留的,第三種格式清晰度較差,義格式的人們而保留的,第三種格式清晰度較差,不提倡使用。不提倡使用。 創(chuàng)建二維數(shù)組的格式為:創(chuàng)建二維數(shù)組的格式為: new 數(shù)組元素類型數(shù)組元素類型行數(shù)行數(shù)列數(shù)列數(shù); 其中,其中,“數(shù)組元素類型數(shù)組元素類型”為二維數(shù)組元素的類為二維數(shù)組元素的類型型, “行數(shù)行數(shù)”與與“列數(shù)列數(shù)”表明了陳列在行方向與

21、表明了陳列在行方向與列方向的元素?cái)?shù)量。列方向的元素?cái)?shù)量。 例如,例如, intArray = new int105; floatArray = new float34;int intArray = new int105;等價(jià)于:等價(jià)于:intArray = new int10;for (int i = 0; i 10; i+) intArrayi = new int5;每行元素個(gè)數(shù)不同每行元素個(gè)數(shù)不同floatArray = new float5 ;for (int i = 0; i 5; i+) floatArrayi = new floati+1;2. 2. 二維數(shù)組的初始化二維數(shù)組的初始

22、化 int intArray=1,2,3,4, 5,6,7,8, 9, 10, 11,12; 執(zhí)行效果:首先創(chuàng)建二維數(shù)組,然后,將第執(zhí)行效果:首先創(chuàng)建二維數(shù)組,然后,將第1個(gè)括號(hào)中的個(gè)括號(hào)中的3個(gè)數(shù)值分別賦給第個(gè)數(shù)值分別賦給第1行的行的3個(gè)元素;再將第個(gè)元素;再將第2個(gè)括號(hào)中的個(gè)括號(hào)中的3個(gè)個(gè)數(shù)值分別賦給第數(shù)值分別賦給第2行的行的3個(gè)元素;最后將第個(gè)元素;最后將第3個(gè)括號(hào)中的個(gè)括號(hào)中的3個(gè)個(gè)數(shù)值分別賦給第數(shù)值分別賦給第3行的行的3個(gè)元素。初始化后的數(shù)組元素狀態(tài)個(gè)元素。初始化后的數(shù)組元素狀態(tài)為:為:3. 3. 二維數(shù)組元素的訪問二維數(shù)組元素的訪問 創(chuàng)建二維數(shù)組之后,可以通過引用型的二維數(shù)組變量對(duì)

23、數(shù)創(chuàng)建二維數(shù)組之后,可以通過引用型的二維數(shù)組變量對(duì)數(shù)組元素進(jìn)行操作了。二維數(shù)組必須用兩個(gè)下標(biāo)惟一地確定組元素進(jìn)行操作了。二維數(shù)組必須用兩個(gè)下標(biāo)惟一地確定元素,第一個(gè)下標(biāo)為行下標(biāo),第二個(gè)下標(biāo)為列下標(biāo),下標(biāo)元素,第一個(gè)下標(biāo)為行下標(biāo),第二個(gè)下標(biāo)為列下標(biāo),下標(biāo)的起始編號(hào)從的起始編號(hào)從0 0開始。開始。 int intArray = new int54; 舉例:利用二維數(shù)組表示矩陣,并實(shí)現(xiàn)兩個(gè)矩陣舉例:利用二維數(shù)組表示矩陣,并實(shí)現(xiàn)兩個(gè)矩陣相乘的操作。相乘的操作。 矩陣可以用來表示統(tǒng)計(jì)數(shù)據(jù)等方面的各種有關(guān)聯(lián)矩陣可以用來表示統(tǒng)計(jì)數(shù)據(jù)等方面的各種有關(guān)聯(lián)的數(shù)據(jù)。在數(shù)學(xué)上的數(shù)據(jù)。在數(shù)學(xué)上, ,矩陣可以是由方程組的

24、系數(shù)矩陣可以是由方程組的系數(shù)及常數(shù)構(gòu)成的方陣。下面給出一個(gè)方程組與之對(duì)及常數(shù)構(gòu)成的方陣。下面給出一個(gè)方程組與之對(duì)應(yīng)的矩陣表示。應(yīng)的矩陣表示。 在矩陣的運(yùn)算中,要求兩個(gè)相乘的矩陣必須滿在矩陣的運(yùn)算中,要求兩個(gè)相乘的矩陣必須滿足第足第1 1個(gè)矩陣的列數(shù)等于第個(gè)矩陣的列數(shù)等于第2 2個(gè)矩陣的行數(shù)。即個(gè)矩陣的行數(shù)。即對(duì)于對(duì)于 Am1Am1n1n1和和Bm2Bm2n2,n2,要求要求n1=m2n1=m2,且結(jié)果,且結(jié)果矩陣矩陣C C的行列數(shù)為的行列數(shù)為m1m1n2n2,其中的每個(gè)元素內(nèi),其中的每個(gè)元素內(nèi)容為容為 bacjknkkiji,11,public static void enterMatrix(

25、int m, int row, int col) / 輸入矩陣輸入矩陣 for (int i = 0; i row; i+) for (int j = 0; j col; j+) mij = (int) Math.round(Math.random() * 10); public static void printMatrix(int m, int row, int col) / 顯示矩陣顯示矩陣 System.out.println(); for (int i = 0; i row; i+) for (int j = 0; j col; j+) System.out.printf(%4d,m

26、ij); System.out.println(); System.out.println(); public static void MulMatrix(int a, int row1, int col1, int b, int row2, int col2, int c) / 兩個(gè)矩陣相乘兩個(gè)矩陣相乘 for (int i = 0; i row1; i+) for (int j = 0; j col2; j+) cij = 0; for (int k = 0; k col1; k+) cij += aik * bkj; 3.2 3.2 字符串與字符串與StringString類類l 在在J

27、ava語言中提供了兩種字符串:語言中提供了兩種字符串: 一類是一類是String標(biāo)準(zhǔn)類實(shí)現(xiàn)的字符串常量;標(biāo)準(zhǔn)類實(shí)現(xiàn)的字符串常量; 另一類是另一類是StringBuffer標(biāo)準(zhǔn)類實(shí)現(xiàn)的可編輯修改標(biāo)準(zhǔn)類實(shí)現(xiàn)的可編輯修改的字符串。的字符串。 l 與與C語言一樣,語言一樣,Java語言中的字符串直接量使語言中的字符串直接量使用雙引號(hào)將字符序列括在其中。用雙引號(hào)將字符序列括在其中。 this is a string literal! 這樣書寫的直接量將屬于這樣書寫的直接量將屬于String類。類。 除了直接書寫字符串直接量以外,還可以將某除了直接書寫字符串直接量以外,還可以將某個(gè)字符串存儲(chǔ)在個(gè)字符串存儲(chǔ)

28、在StringString的類對(duì)象中。由于的類對(duì)象中。由于StringString類提供了很多對(duì)字符串常量操作的成員類提供了很多對(duì)字符串常量操作的成員方法,所以,這樣做既便于字符串的重復(fù)利用,方法,所以,這樣做既便于字符串的重復(fù)利用,又可以提高應(yīng)用字符串的控制能力。又可以提高應(yīng)用字符串的控制能力。 String類被定義在類被定義在java.lang包中。包中。 使用使用String類表示字符串需要經(jīng)過定義、創(chuàng)建、類表示字符串需要經(jīng)過定義、創(chuàng)建、初始化和訪問幾個(gè)階段。初始化和訪問幾個(gè)階段。 定義一個(gè)定義一個(gè)String類對(duì)象的語法格式為:類對(duì)象的語法格式為: String 字符串變量名字符串變量

29、名; 其中,其中,String為類名,為類名, “字符串變量名字符串變量名”為對(duì)象名。為對(duì)象名。 需要注意,這里定義的字符串對(duì)象只是一個(gè)引需要注意,這里定義的字符串對(duì)象只是一個(gè)引用型變量,需要按照下列格式創(chuàng)建及初始化對(duì)用型變量,需要按照下列格式創(chuàng)建及初始化對(duì)象。象。 字符串變量名字符串變量名 = 字符串值字符串值; 或或 字符串變量名字符串變量名 = new String(字符串值字符串值); “字符串變量名字符串變量名”為引用型的為引用型的String類對(duì)象,類對(duì)象,“字符串值字符串值”為字符串直接量或另外一個(gè)引用為字符串直接量或另外一個(gè)引用型的型的String類對(duì)象。類對(duì)象。 String

30、 str1, str2, str3;str1 = This is a string; str2 = new String(This is a string); str3 = str1; 在使用在使用Sting類對(duì)象時(shí)需要注意幾點(diǎn):類對(duì)象時(shí)需要注意幾點(diǎn):l 在在Java語言中,字符串直接量中的每個(gè)字符使語言中,字符串直接量中的每個(gè)字符使用用Unicode編碼,占用兩個(gè)字節(jié)。編碼,占用兩個(gè)字節(jié)。l 如果定義如果定義String類對(duì)象之后,沒有引用任何一類對(duì)象之后,沒有引用任何一個(gè)字符串,就應(yīng)該賦予個(gè)字符串,就應(yīng)該賦予null。l String類對(duì)象所引用的字符串是常量,不能對(duì)類對(duì)象所引用的字符串是

31、常量,不能對(duì)其字符串內(nèi)容進(jìn)行修改。其字符串內(nèi)容進(jìn)行修改。l String類提供了很多成員方法,可以通過這些類提供了很多成員方法,可以通過這些方法更方便、靈活地使用字符串。方法更方便、靈活地使用字符串。 舉例:判斷給定的字符串是否為回文字符串。舉例:判斷給定的字符串是否為回文字符串。 所謂回文字符串是指將字符串逆置后與原字符串相同。所謂回文字符串是指將字符串逆置后與原字符串相同。例如,例如,“ABCDCBA”ABCDCBA”逆置后還是逆置后還是“ABCDCBA”ABCDCBA”,這是一,這是一個(gè)回文字符串;但個(gè)回文字符串;但“Program”Program”逆置后為逆置后為“margorP”ma

32、rgorP”,與原字符串不相同,這不是回文字符串。與原字符串不相同,這不是回文字符串。 public static boolean isPalindrome(String str) /判斷判斷str是否為回文字符串是否為回文字符串 int len = str.length(); /返回字符串長(zhǎng)度返回字符串長(zhǎng)度 for (int index = 0; index len / 2 - 1; index+) if (str.charAt(index) != str.charAt(len - index - 1) /對(duì)稱的兩個(gè)字符比較對(duì)稱的兩個(gè)字符比較 return false; return tru

33、e; 3.3 3.3 數(shù)組操作與數(shù)組操作與ArraysArrays類應(yīng)用類應(yīng)用 Arrays是是Java類庫(kù)提供的一個(gè)位于類庫(kù)提供的一個(gè)位于java.util包包中的標(biāo)準(zhǔn)類,其中包含了許多靜態(tài)成員方法,中的標(biāo)準(zhǔn)類,其中包含了許多靜態(tài)成員方法,通過它們可以方便地對(duì)數(shù)組進(jìn)行排序、比較與通過它們可以方便地對(duì)數(shù)組進(jìn)行排序、比較與填充等一系列操作,由于這些成員方法都是經(jīng)填充等一系列操作,由于這些成員方法都是經(jīng)過精心設(shè)計(jì)、嚴(yán)格檢測(cè),所以,這樣不但可以過精心設(shè)計(jì)、嚴(yán)格檢測(cè),所以,這樣不但可以大大地減輕程序設(shè)計(jì)人員的負(fù)擔(dān),還可以提高大大地減輕程序設(shè)計(jì)人員的負(fù)擔(dān),還可以提高程序的質(zhì)量、增加程序的清晰度與優(yōu)化程序的程序的質(zhì)量、增加程序的清晰度與優(yōu)化程序的執(zhí)行效率。執(zhí)行效率。 3.4 3.4 綜合應(yīng)用舉例綜合應(yīng)用舉例 舉例舉例:隨機(jī)產(chǎn)生若干個(gè)整數(shù),并采用選擇排序的算法,:隨機(jī)產(chǎn)生若干個(gè)整數(shù),并采用選擇排序的算法,按照從大到小重新進(jìn)行排列。按照從大到小重新進(jìn)行排列。 問題分析問題分析:這是一的典型

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論