版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第3 3章章數(shù)組與字符串?dāng)?shù)組與字符串 在程序設(shè)計中,數(shù)組類型是一種表示數(shù)據(jù)在程序設(shè)計中,數(shù)組類型是一種表示數(shù)據(jù)集合的常用手段,字符串是一種表示姓名集合的常用手段,字符串是一種表示姓名、提示信息等類似數(shù)據(jù)的常見形式。在、提示信息等類似數(shù)據(jù)的常見形式。在JavaJava語言中,為數(shù)組類型與字符串都定義語言中,為數(shù)組類型與字符串都定義了相應(yīng)的標準類,了相應(yīng)的標準類,ArraysArrays是實現(xiàn)數(shù)組類型是實現(xiàn)數(shù)組類型的組織與操作的類,的組織與操作的類,StringString是實現(xiàn)字符串是實現(xiàn)字符串存儲與操作的類。這樣既體現(xiàn)了存儲與操作的類。這樣既體現(xiàn)了JavaJava面向面向?qū)ο蟮耐暾?,又增?/p>
2、了這兩種數(shù)據(jù)的操對象的完整性,又增強了這兩種數(shù)據(jù)的操作能力,為簡化程序設(shè)計過程,提高程序作能力,為簡化程序設(shè)計過程,提高程序的可靠性提供了可能性。的可靠性提供了可能性。 3.1 3.1 數(shù)組類型數(shù)組類型 根據(jù)數(shù)據(jù)類型的構(gòu)成方式不同,可以將根據(jù)數(shù)據(jù)類型的構(gòu)成方式不同,可以將所有的數(shù)據(jù)類型分成兩個類別:簡單數(shù)所有的數(shù)據(jù)類型分成兩個類別:簡單數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型。所謂簡單是指據(jù)類型和復(fù)合數(shù)據(jù)類型。所謂簡單是指用于組織單值數(shù)據(jù)的數(shù)據(jù)類型;所謂復(fù)用于組織單值數(shù)據(jù)的數(shù)據(jù)類型;所謂復(fù)合是指組織數(shù)據(jù)集合的數(shù)據(jù)類型合是指組織數(shù)據(jù)集合的數(shù)據(jù)類型. . 由惟一確定某個數(shù)組元素所需要的下標由惟一確定某個數(shù)組元素所需
3、要的下標個數(shù)可以將數(shù)組分為一維數(shù)組、二維數(shù)個數(shù)可以將數(shù)組分為一維數(shù)組、二維數(shù)組及多維數(shù)組。組及多維數(shù)組。 3.1.1 3.1.1 一維數(shù)組一維數(shù)組 所謂一維數(shù)組是指每個元素由一個下標所謂一維數(shù)組是指每個元素由一個下標值惟一確定的數(shù)組類型。這是一種使用值惟一確定的數(shù)組類型。這是一種使用十分頻繁的數(shù)據(jù)類型,它的特征明顯、十分頻繁的數(shù)據(jù)類型,它的特征明顯、操作方便、易于理解,是每個程序設(shè)計操作方便、易于理解,是每個程序設(shè)計者在編寫程序的過程中無法回避使用的者在編寫程序的過程中無法回避使用的一種數(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語言的語言的標識符命名規(guī)則,建議遵守標識符命名規(guī)則,建議遵守JavaJava語言的語言的標識符命名規(guī)范。標識符命名規(guī)范。 int intArray; 或者或者 int intArray ; float floatArray; 或者或者 float floatArra
5、y ; String stringArray; 或者或者 String stringArray ; 建議使用前一種格式風(fēng)格,這種格式風(fēng)格的建議使用前一種格式風(fēng)格,這種格式風(fēng)格的好處是將數(shù)據(jù)類型集中表示,即前面是數(shù)據(jù)好處是將數(shù)據(jù)類型集中表示,即前面是數(shù)據(jù)類型,后面是變量名稱,而后面一種格式風(fēng)類型,后面是變量名稱,而后面一種格式風(fēng)格的數(shù)據(jù)類型被變量名稱分隔為前后兩個部格的數(shù)據(jù)類型被變量名稱分隔為前后兩個部分。分。Java語言保留這種定義格式風(fēng)格完全是語言保留這種定義格式風(fēng)格完全是為了尊重人們的使用習(xí)慣。為了尊重人們的使用習(xí)慣。2. 2. 一維數(shù)組的創(chuàng)建一維數(shù)組的創(chuàng)建 一個數(shù)組可以包含多個元素,所含
6、的元一個數(shù)組可以包含多個元素,所含的元素數(shù)目被稱為數(shù)組的長度,數(shù)組中也可素數(shù)目被稱為數(shù)組的長度,數(shù)組中也可以沒有任何元素,此時稱為空數(shù)組。正以沒有任何元素,此時稱為空數(shù)組。正因為如此,在創(chuàng)建數(shù)組時需要給出組成因為如此,在創(chuàng)建數(shù)組時需要給出組成數(shù)組的元素數(shù)目。下面是利用數(shù)組的元素數(shù)目。下面是利用newnew運算符運算符創(chuàng)建數(shù)組的語法格式:創(chuàng)建數(shù)組的語法格式: newnew數(shù)組元素類型數(shù)組元素類型 數(shù)組元素數(shù)目數(shù)組元素數(shù)目; “數(shù)組元素類型為組成數(shù)組的元素類數(shù)組元素類型為組成數(shù)組的元素類型,型,“數(shù)組元素數(shù)目為組成數(shù)組的元數(shù)組元素數(shù)目為組成數(shù)組的元素數(shù)目,這個值要求大于或等于零。素數(shù)目,這個值要求
7、大于或等于零。 intArrayintArray由由100100個個intint類型的元素組成類型的元素組成intArray = new int100; intArray = new int100; floatArrayfloatArray由由5050個個floatfloat類型的元素組成類型的元素組成floatArray = new float50; floatArray = new float50; stringArraystringArray由由1010個個StringString類型的元素組成類型的元素組成stringArray = new String10;stringArray =
8、 new String10;也可以將數(shù)組的定義與創(chuàng)建合并也可以將數(shù)組的定義與創(chuàng)建合并char name = new char30;char name = new char30;double doubleData = new double10; double doubleData = new double10; 0 01 12 23 34 42626272728282929name0 01 12 23 34 45 56 67 78 89 9doubleData3. 3. 一維數(shù)組的初始化一維數(shù)組的初始化 在創(chuàng)建數(shù)組的同時,為數(shù)組元素賦予初始值的過程在創(chuàng)建數(shù)組的同時,為數(shù)組元素賦予初始值的過程被稱
9、為數(shù)組的初始化。被稱為數(shù)組的初始化。 int intArray = 10,20,30,40,50,60,70,80,90,100; 操作過程:首先為操作過程:首先為intArray數(shù)組分配數(shù)組分配10個個int型元素型元素所需要占用的存儲空間,然后將初始值所需要占用的存儲空間,然后將初始值10,20,30,40,50,60,70,80,90,100依次賦給依次賦給intArray0intArray9。3. 3. 一維數(shù)組的初始化一維數(shù)組的初始化 String name = zhang, wang, li, zhao; 由于在由于在Java語言中字符串屬于語言中字符串屬于String類對象,所以
10、類對象,所以這條語句的操作過程會稍復(fù)雜一些。首先,要為這條語句的操作過程會稍復(fù)雜一些。首先,要為4個個String型引用分配存儲空間,然后再根據(jù)型引用分配存儲空間,然后再根據(jù)4個初始個初始值為值為4個字符串分配存儲空間,最后將初始值個字符串分配存儲空間,最后將初始值zhang,wang,li,zhao 的引用依次賦給的引用依次賦給name0name3。 4. 4. 一維數(shù)組元素的訪問一維數(shù)組元素的訪問 創(chuàng)建數(shù)組后,就可以通過引用訪問數(shù)組元素以達創(chuàng)建數(shù)組后,就可以通過引用訪問數(shù)組元素以達到對數(shù)組操作的目的。到對數(shù)組操作的目的。 JavaJava訪問數(shù)組元素的格式為:訪問數(shù)組元素的格式為: arr
11、ayNamearrayName下標表達式下標表達式 在運行程序時,在運行程序時,JavaJava語言會嚴格地檢查每個語言會嚴格地檢查每個“下下標表達式的取值范圍,一旦發(fā)生越界就會拋出標表達式的取值范圍,一旦發(fā)生越界就會拋出ArrayIndexOutOfBoundsExceptionArrayIndexOutOfBoundsException異常。異常。 當(dāng)需要對數(shù)組中的每個元素進行操作時,可以當(dāng)需要對數(shù)組中的每個元素進行操作時,可以利用數(shù)組對象中封裝的利用數(shù)組對象中封裝的lengthlength屬性獲得當(dāng)前數(shù)屬性獲得當(dāng)前數(shù)組中包含的元素數(shù)目。組中包含的元素數(shù)目。 int value = 10,
12、9,40,20,12,8,9; int value = 10,9,40,20,12,8,9; for (int i = 0, sum = 0; i for (int i = 0, sum = 0; i value.length; i+) value.length; i+) sum += valuei; sum += valuei; 在在forfor語句中,將循環(huán)上界設(shè)定為語句中,將循環(huán)上界設(shè)定為value.lengthvalue.length的好處是:當(dāng)?shù)暮锰幨牵寒?dāng)valuevalue數(shù)組的長度數(shù)組的長度發(fā)生變化時不需要修改程序的其他地方。發(fā)生變化時不需要修改程序的其他地方。 在在JDK 5.
13、0版本中增加了一個專門用于操作數(shù)據(jù)集版本中增加了一個專門用于操作數(shù)據(jù)集合的循環(huán)流程控制語句合的循環(huán)流程控制語句for each,其功能更加強大、,其功能更加強大、書寫更加簡潔。這種語句的書寫格式為:書寫更加簡潔。這種語句的書寫格式為: for (數(shù)組元素型變量數(shù)組元素型變量 :數(shù)組型變量:數(shù)組型變量) 語句語句; “數(shù)組元素型變量是與數(shù)組元素同類型的變量,數(shù)組元素型變量是與數(shù)組元素同類型的變量, “數(shù)組型變量是一個表示數(shù)組引用的變量。數(shù)組型變量是一個表示數(shù)組引用的變量。 例如,可以將上述數(shù)組元素累加的程序段改寫成:例如,可以將上述數(shù)組元素累加的程序段改寫成: int sum = 0; for
14、(int v : value) sum += v; 這條語句的執(zhí)行過程可以描述為:循環(huán)訪問這條語句的執(zhí)行過程可以描述為:循環(huán)訪問value數(shù)數(shù)組中的每個元素并將其內(nèi)容累加到變量組中的每個元素并將其內(nèi)容累加到變量sum中。中。 5. 5. 一維數(shù)組的復(fù)制一維數(shù)組的復(fù)制 在在Java語言中,數(shù)組型變量可以實現(xiàn)兩種形式語言中,數(shù)組型變量可以實現(xiàn)兩種形式的復(fù)制操作。的復(fù)制操作。 第一種復(fù)制操作被稱為數(shù)組引用的復(fù)制第一種復(fù)制操作被稱為數(shù)組引用的復(fù)制 int firstArray = 10,20,30,40,50,60; int secondArray; secondArray = firstArray;
15、 這條賦值語句的執(zhí)行效果是將這條賦值語句的執(zhí)行效果是將firstArray的引的引用信息賦給用信息賦給secondArray,此時,此時firstArray與與secondArray共同引用一個數(shù)組。共同引用一個數(shù)組。 arraycopy是是System類中的一個靜態(tài)方法。類中的一個靜態(tài)方法。 定義格式為:定義格式為: void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 其中,其中,src為被拷貝的原始數(shù)組,為被拷貝的原始數(shù)組,srcPos為為原始數(shù)組中將要拷貝的數(shù)組元素的起始位原始數(shù)組中將要
16、拷貝的數(shù)組元素的起始位置,置,dest為目標數(shù)組,為目標數(shù)組,destPos為拷貝到目為拷貝到目標數(shù)組中后放置數(shù)組元素的起始位置,標數(shù)組中后放置數(shù)組元素的起始位置,length為拷貝的數(shù)組元素數(shù)目。為拷貝的數(shù)組元素數(shù)目。int arraySrc = 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個候選人參加學(xué)生會主席的競選,個候選人參加學(xué)生會主席的競選,最后將根據(jù)學(xué)生的投票情況決定學(xué)
17、生會主席的獲勝最后將根據(jù)學(xué)生的投票情況決定學(xué)生會主席的獲勝人選。編寫一個程序,完成選票的統(tǒng)計工作,并顯人選。編寫一個程序,完成選票的統(tǒng)計工作,并顯示最終的獲勝者。示最終的獲勝者。 分析:為了利用程序解決這個問題,假設(shè)為每位候分析:為了利用程序解決這個問題,假設(shè)為每位候選人編號選人編號1. n1. n。如果希望為某位候選人投票時,。如果希望為某位候選人投票時,只需要從鍵盤上輸入這位候選人的編號即可。只需要從鍵盤上輸入這位候選人的編號即可。 每位候選人所獲的選票的存儲在一個含有每位候選人所獲的選票的存儲在一個含有n n個元素個元素的一維數(shù)組中。由于含有的一維數(shù)組中。由于含有n n個元素的一維數(shù)組的
18、下個元素的一維數(shù)組的下標范圍在標范圍在0.n-10.n-1之間,所以,在程序?qū)崿F(xiàn)中,需之間,所以,在程序?qū)崿F(xiàn)中,需要將候選人的編號與數(shù)組元素的下標做一個映射,要將候選人的編號與數(shù)組元素的下標做一個映射,即即1 1號候選人在數(shù)組中用下標號候選人在數(shù)組中用下標0 0表示,表示,2 2號候選人在號候選人在數(shù)組中用下標數(shù)組中用下標1 1表示,依此類推,表示,依此類推,n n號候選人在數(shù)組號候選人在數(shù)組中用下標中用下標n-1n-1表示。表示。 在在JavaJava語言中,一維數(shù)組的元素可以屬語言中,一維數(shù)組的元素可以屬于任意類型,包括基本數(shù)據(jù)類型和引用于任意類型,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。也就是說
19、,一維數(shù)組的元素數(shù)據(jù)類型。也就是說,一維數(shù)組的元素又可以是一維數(shù)組類型,這就支持了二又可以是一維數(shù)組類型,這就支持了二維數(shù)組,乃至多維數(shù)組的概念。由于可維數(shù)組,乃至多維數(shù)組的概念。由于可以借助于二維數(shù)組表示具有二維關(guān)系的以借助于二維數(shù)組表示具有二維關(guān)系的數(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ù)組型
20、變量名 ; ; 或者或者 數(shù)組元素類型數(shù)組元素類型 數(shù)組型變量名數(shù)組型變量名 ; ; “數(shù)組元素類型為二維數(shù)組的元素類型,數(shù)組元素類型為二維數(shù)組的元素類型, “數(shù)組型變量名為二維數(shù)組型變量名稱。數(shù)組型變量名為二維數(shù)組型變量名稱。 int intArray; float floatArray ; double doubleArray ; 在這在這3種定義格式中,建議使用第一種格種定義格式中,建議使用第一種格式。第二種格式完全是為了尊重那些習(xí)慣式。第二種格式完全是為了尊重那些習(xí)慣使用使用C/C+定義格式的人們而保留的,第定義格式的人們而保留的,第三種格式清晰度較差,不提倡使用。三種格式清晰度較差,
21、不提倡使用。 創(chuàng)建二維數(shù)組的格式為:創(chuàng)建二維數(shù)組的格式為: new 數(shù)組元素類型數(shù)組元素類型行數(shù)行數(shù)列數(shù)列數(shù); 其中,其中,“數(shù)組元素類型為二維數(shù)組元數(shù)組元素類型為二維數(shù)組元素的類型素的類型, “行數(shù)與行數(shù)與“列數(shù)表明了陳列數(shù)表明了陳列在行方向與列方向的元素數(shù)量。列在行方向與列方向的元素數(shù)量。 例如,例如, intArray = new int105; floatArray = new float34;int intArray = new int105;等價于:等價于:intArray = new int10;for (int i = 0; i 10; i+) intArrayi = new
22、int5;每行元素個數(shù)不同每行元素個數(shù)不同floatArray = new float5 ;for (int i = 0; i 5; i+) floatArrayi = new floati+1;2. 2. 二維數(shù)組的初始化二維數(shù)組的初始化 int intArray=1,2,3,4, 5,6,7,8, 9, 10, 11,12; 執(zhí)行效果:首先創(chuàng)建二維數(shù)組,然后,將第執(zhí)行效果:首先創(chuàng)建二維數(shù)組,然后,將第1個括個括號中的號中的3個數(shù)值分別賦給第個數(shù)值分別賦給第1行的行的3個元素;再將第個元素;再將第2個括號中的個括號中的3個數(shù)值分別賦給第個數(shù)值分別賦給第2行的行的3個元素;個元素;最后將第最后
23、將第3個括號中的個括號中的3個數(shù)值分別賦給第個數(shù)值分別賦給第3行的行的3個元素。初始化后的數(shù)組元素狀態(tài)為:個元素。初始化后的數(shù)組元素狀態(tài)為:3. 3. 二維數(shù)組元素的訪問二維數(shù)組元素的訪問 創(chuàng)建二維數(shù)組之后,可以通過引用型的二維數(shù)組創(chuàng)建二維數(shù)組之后,可以通過引用型的二維數(shù)組變量對數(shù)組元素進行操作了。二維數(shù)組必須用兩變量對數(shù)組元素進行操作了。二維數(shù)組必須用兩個下標惟一地確定元素,第一個下標為行下標,個下標惟一地確定元素,第一個下標為行下標,第二個下標為列下標,下標的起始編號從第二個下標為列下標,下標的起始編號從0 0開始。開始。 int intArray = new int54; int int
24、Array = new int54; 舉例:利用二維數(shù)組表示矩陣,并實現(xiàn)兩舉例:利用二維數(shù)組表示矩陣,并實現(xiàn)兩個矩陣相乘的操作。個矩陣相乘的操作。 矩陣可以用來表示統(tǒng)計數(shù)據(jù)等方面的各種矩陣可以用來表示統(tǒng)計數(shù)據(jù)等方面的各種有關(guān)聯(lián)的數(shù)據(jù)。在數(shù)學(xué)上有關(guān)聯(lián)的數(shù)據(jù)。在數(shù)學(xué)上, ,矩陣可以是由方矩陣可以是由方程組的系數(shù)及常數(shù)構(gòu)成的方陣。下面給出程組的系數(shù)及常數(shù)構(gòu)成的方陣。下面給出一個方程組與之對應(yīng)的矩陣表示。一個方程組與之對應(yīng)的矩陣表示。 在矩陣的運算中,要求兩個相乘的矩陣在矩陣的運算中,要求兩個相乘的矩陣必須滿足第必須滿足第1 1個矩陣的列數(shù)等于第個矩陣的列數(shù)等于第2 2個矩個矩陣的行數(shù)。即對于陣的行數(shù)
25、。即對于 Am1 Am1n1n1和和Bm2Bm2n2,n2,要求要求n1=m2n1=m2,且結(jié)果矩陣,且結(jié)果矩陣C C的行列數(shù)為的行列數(shù)為m1m1n2n2,其中的每個元素內(nèi)容為,其中的每個元素內(nèi)容為 bacjknkkiji,11,public static void enterMatrix(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 p
26、rintMatrix(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,mij); System.out.println(); System.out.println(); public static void MulMatrix(int a, int row1, int col1, int b, int row2, int col2, int c) / 兩個矩陣相乘兩個矩陣相乘
27、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; 舉例:編寫一個舉例:編寫一個Java程序,將程序,將NN的方的方陣轉(zhuǎn)圈賦值,并顯示輸出。陣轉(zhuǎn)圈賦值,并顯示輸出。 public static void rotating(int m, int num) / 向方陣中填寫數(shù)值向方陣中填寫數(shù)值 int k = 1; / 將要填寫的數(shù)值將要填寫的數(shù)值 for (int i = 0; i = num / 2; i+) / 將要填寫的圈
28、數(shù)將要填寫的圈數(shù) for (int j = i; j num - i; j+) / 上方行方向上方行方向 mij = k+; for (int j = i + 1; j = i; j-) / 下方行方向下方行方向 mnum - i - 1j = k+; for (int j = num - i - 2; j i; j-) / 左側(cè)列方向左側(cè)列方向 mji = k+; 3.2 3.2 字符串與字符串與StringString類類l在在Java語言中提供了兩種字符串:語言中提供了兩種字符串:l一類是一類是String標準類實現(xiàn)的字符串常量;標準類實現(xiàn)的字符串常量;l另一類是另一類是StringBu
29、ffer標準類實現(xiàn)的可編標準類實現(xiàn)的可編輯修改的字符串。輯修改的字符串。 l與與C語言一樣,語言一樣,Java語言中的字符串直接語言中的字符串直接量使用雙引號將字符序列括在其中。量使用雙引號將字符序列括在其中。lthis is a string literal!l這樣書寫的直接量將屬于這樣書寫的直接量將屬于String類。類。 除了直接書寫字符串直接量以外,還可除了直接書寫字符串直接量以外,還可以將某個字符串存儲在以將某個字符串存儲在StringString的類對象的類對象中。由于中。由于StringString類提供了很多對字符串類提供了很多對字符串常量操作的成員方法,所以,這樣做既常量操作
30、的成員方法,所以,這樣做既便于字符串的重復(fù)利用,又可以提高應(yīng)便于字符串的重復(fù)利用,又可以提高應(yīng)用字符串的控制能力。用字符串的控制能力。 String類被定義在類被定義在java.lang包中。包中。 使用使用String類表示字符串需要經(jīng)過定義、類表示字符串需要經(jīng)過定義、創(chuàng)建、初始化和訪問幾個階段。創(chuàng)建、初始化和訪問幾個階段。 定義一個定義一個String類對象的語法格式為:類對象的語法格式為: String 字符串變量名字符串變量名; 其中,其中,String為類名,為類名, “字符串變量名為對象名。字符串變量名為對象名。 需要注意,這里定義的字符串對象只是需要注意,這里定義的字符串對象只是
31、一個引用型變量,需要按照下列格式創(chuàng)一個引用型變量,需要按照下列格式創(chuàng)建及初始化對象。建及初始化對象。 字符串變量名字符串變量名 = 字符串值字符串值; 或或 字符串變量名字符串變量名 = new String(字符串值字符串值); “字符串變量名為引用型的字符串變量名為引用型的String類類對象,對象,“字符串值為字符串直接量或字符串值為字符串直接量或另外一個引用型的另外一個引用型的String類對象。類對象。 String str1, str2, str3;str1 = This is a string; str2 = new String(This is a string); str3
32、= str1; 在使用在使用Sting類對象時需要注意幾點:類對象時需要注意幾點:在在Java語言中,字符串直接量中的每個字語言中,字符串直接量中的每個字符使用符使用Unicode編碼,占用兩個字節(jié)。編碼,占用兩個字節(jié)。如果定義如果定義String類對象之后,沒有引用任類對象之后,沒有引用任何一個字符串,就應(yīng)該賦予何一個字符串,就應(yīng)該賦予null。String類對象所引用的字符串是常量,不類對象所引用的字符串是常量,不能對其字符串內(nèi)容進行修改。能對其字符串內(nèi)容進行修改。String類提供了很多成員方法,可以通過類提供了很多成員方法,可以通過這些方法更方便、靈活地使用字符串。這些方法更方便、靈活
33、地使用字符串。 舉例:判斷給定的字符串是否為回文字符串。舉例:判斷給定的字符串是否為回文字符串。 所謂回文字符串是指將字符串逆置后與原字符所謂回文字符串是指將字符串逆置后與原字符串相同。例如,串相同。例如,“ABCDCBA“ABCDCBA逆置后還是逆置后還是“ABCDCBA”“ABCDCBA”,這是一個回文字符串;但,這是一個回文字符串;但“Program“Program逆置后為逆置后為“margorP”“margorP”,與原字符,與原字符串不相同,這不是回文字符串。串不相同,這不是回文字符串。 public static boolean isPalindrome(String str) /
34、判斷判斷str是否為回文字符串是否為回文字符串 int len = str.length(); /返回字符串長度返回字符串長度 for (int index = 0; index len / 2 - 1; index+) if (str.charAt(index) != str.charAt(len - index - 1) /對稱的兩個字符比較對稱的兩個字符比較 return false; return true; 3.3 3.3 數(shù)組操作與數(shù)組操作與ArraysArrays類應(yīng)用類應(yīng)用 Arrays是是Java類庫提供的一個位于類庫提供的一個位于java.util包中的標準類,其中包含了許
35、多包中的標準類,其中包含了許多靜態(tài)成員方法,通過它們可以方便地對靜態(tài)成員方法,通過它們可以方便地對數(shù)組進行排序、比較與填充等一系列操數(shù)組進行排序、比較與填充等一系列操作,由于這些成員方法都是經(jīng)過精心設(shè)作,由于這些成員方法都是經(jīng)過精心設(shè)計、嚴格檢測,所以,這樣不但可以大計、嚴格檢測,所以,這樣不但可以大大地減輕程序設(shè)計人員的負擔(dān),還可以大地減輕程序設(shè)計人員的負擔(dān),還可以提高程序的質(zhì)量、增加程序的清晰度與提高程序的質(zhì)量、增加程序的清晰度與優(yōu)化程序的執(zhí)行效率。優(yōu)化程序的執(zhí)行效率。 3.4 3.4 綜合應(yīng)用舉例綜合應(yīng)用舉例 舉例:隨機產(chǎn)生若干個整數(shù),并采用選擇排序舉例:隨機產(chǎn)生若干個整數(shù),并采用選擇排
36、序的算法,按照非遞減順序重新進行排列。的算法,按照非遞減順序重新進行排列。 問題分析:這是一的典型的一維數(shù)組問題。為問題分析:這是一的典型的一維數(shù)組問題。為了展示一維數(shù)組的操作方式,在這個實例中,了展示一維數(shù)組的操作方式,在這個實例中,自定義選擇排序的成員方法。自定義選擇排序的成員方法。 設(shè)計說明:設(shè)計三個成員方法,一個用于生成設(shè)計說明:設(shè)計三個成員方法,一個用于生成一維數(shù)組的內(nèi)容;一個用于顯示一維數(shù)組的內(nèi)一維數(shù)組的內(nèi)容;一個用于顯示一維數(shù)組的內(nèi)容;另一個用于實現(xiàn)選擇排序算法。容;另一個用于實現(xiàn)選擇排序算法。 由于在排序過程中,隨時需要查看或操作每個由于在排序過程中,隨時需要查看或操作每個整數(shù)
37、,所以,利用一維數(shù)組將參加排序的所有整數(shù),所以,利用一維數(shù)組將參加排序的所有整數(shù)保存起來是一種最直接且簡易的方法。整數(shù)保存起來是一種最直接且簡易的方法。 public static void sort(int data) / 選擇排序選擇排序 int index; for (int i = 0; i data.length - 1; i+) / 執(zhí)行執(zhí)行n-1趟選擇操作趟選擇操作 index = i; for (int j = i + 1; j dataindex) index = j; if (index != i) / 將最小數(shù)交換到第將最小數(shù)交換到第i個位置個位置 int temp = datai; datai = dataindex; dataindex = temp; 舉例:打印舉例:打
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧圖書館整體解決方案
- 卡姿蘭活動策劃方案
- 音樂教育中的教學(xué)方法創(chuàng)新
- 腫瘤治療藥臨床使用管理
- 沉與浮教案反思
- 氧化碳制取的說課稿
- 市政工程招投標授權(quán)委托書
- 橡膠制品損壞賠償指南
- 建筑工程改造系統(tǒng)施工合同范本
- 環(huán)保建設(shè)幼兒園施工合同
- 電焊作業(yè)風(fēng)險分析及管控措施
- 醫(yī)療機構(gòu)管理條例(79張)課件
- 五年級下學(xué)期信息技術(shù)3Done三維制作蘿卜課件
- 設(shè)備故障報修維修記錄單
- DB14∕T 1318-2016 公路采空區(qū)處治工程預(yù)算定額
- 諾瓦科技LED多媒體播放器快速使用指引
- 鋼管靜壓樁質(zhì)量監(jiān)理實施細則Word版(共25頁)
- 《沁園春·長沙》理解性默寫
- 畢業(yè)設(shè)計論文--伊利集團內(nèi)部控制的調(diào)查分析
- GB-T 41233-2022 凍魚糜制品(高清版)
- 羊水栓塞-(PPT)PPT課件
評論
0/150
提交評論