JAVA語言程序設(shè)計——數(shù)組.ppt[共49頁]_第1頁
JAVA語言程序設(shè)計——數(shù)組.ppt[共49頁]_第2頁
JAVA語言程序設(shè)計——數(shù)組.ppt[共49頁]_第3頁
JAVA語言程序設(shè)計——數(shù)組.ppt[共49頁]_第4頁
JAVA語言程序設(shè)計——數(shù)組.ppt[共49頁]_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第五章 數(shù)組v5.1 5.1 一維數(shù)組一維數(shù)組v5.2 5.2 多維數(shù)組多維數(shù)組v5.3 5.3 數(shù)組的基本操作數(shù)組的基本操作v5.4 5.4 數(shù)組應(yīng)用舉例數(shù)組應(yīng)用舉例v5.5 5.5 數(shù)組參數(shù)數(shù)組參數(shù)v5.6 5.6 字符串字符串2Introductionv 數(shù)組,數(shù)組,Array(Array(陣列陣列) ) v 變量:存儲單個數(shù)據(jù)變量:存儲單個數(shù)據(jù)v 數(shù)組:存儲多個數(shù)據(jù)數(shù)組:存儲多個數(shù)據(jù)具有相同性質(zhì)的一批數(shù)據(jù)具有相同性質(zhì)的一批數(shù)據(jù)Java Java 數(shù)組:用一個變量表示一組相同類型的數(shù)據(jù)數(shù)組:用一個變量表示一組相同類型的數(shù)據(jù)3For Examplev一組一組n個學生的成績數(shù)據(jù)處理個學生的

2、成績數(shù)據(jù)處理輸入輸入輸出輸出排序排序求最大求最大求平均值求平均值判斷不及格判斷不及格統(tǒng)計分數(shù)段統(tǒng)計分數(shù)段v給每一個學生的成績數(shù)據(jù)設(shè)定一個變量?給每一個學生的成績數(shù)據(jù)設(shè)定一個變量?NO!45.1 一維數(shù)組v數(shù)組數(shù)組一個變量名表示一組數(shù)據(jù),每個數(shù)據(jù)稱為數(shù)組元素一個變量名表示一組數(shù)據(jù),每個數(shù)據(jù)稱為數(shù)組元素每個元素通過下標來區(qū)分每個元素通過下標來區(qū)分v一維數(shù)組一維數(shù)組以一個下標確定數(shù)組中的不同元素以一個下標確定數(shù)組中的不同元素v多維數(shù)組多維數(shù)組多個下標表示一個數(shù)組元素多個下標表示一個數(shù)組元素v數(shù)組必須先經(jīng)過申明和初始化后才能使用數(shù)組必須先經(jīng)過申明和初始化后才能使用數(shù)組申明:確定數(shù)組名、數(shù)組的維數(shù)和數(shù)組

3、元素的數(shù)據(jù)類型數(shù)組申明:確定數(shù)組名、數(shù)組的維數(shù)和數(shù)組元素的數(shù)據(jù)類型5一維數(shù)組的聲明v 一維數(shù)組聲明的格式一維數(shù)組聲明的格式類型標識符類型標識符 數(shù)組名數(shù)組名 或或類型標識符類型標識符 數(shù)組名數(shù)組名 例:表示學生的成績例:表示學生的成績( (整數(shù)整數(shù)) ),可以聲明數(shù)組,可以聲明數(shù)組score: int score ; 表示體重的數(shù)組類型為表示體重的數(shù)組類型為float的的weight,聲明:,聲明: float weight; Note:方括號可以在變量名的后面,也可以在類型名:方括號可以在變量名的后面,也可以在類型名后面后面6一維數(shù)組的初始化v數(shù)組初始化數(shù)組初始化系統(tǒng)為數(shù)組分配存儲空間,確定

4、數(shù)組元素的個數(shù)系統(tǒng)為數(shù)組分配存儲空間,確定數(shù)組元素的個數(shù)用用 new new 初始化數(shù)組初始化數(shù)組 數(shù)組名數(shù)組名= new = new 類型標識符類型標識符 元素個數(shù)元素個數(shù) v先聲明數(shù)組再初始化先聲明數(shù)組再初始化 int sc ; sc=new int10; float weight; weight=new float50l 數(shù)組元素通過下標來區(qū)分數(shù)組元素通過下標來區(qū)分l 下標最小值為下標最小值為0 0l 下標最大值為下標最大值為元素個數(shù)減元素個數(shù)減1 1l 各元素的存儲空間是連續(xù)的各元素的存儲空間是連續(xù)的sc0sc1sc2sc3sc4sc5sc6sc7sc8sc97一維數(shù)組初始化v在聲明的

5、同時進行初始化在聲明的同時進行初始化即將前述的聲明語句、即將前述的聲明語句、newnew語句合并為一條語句:語句合并為一條語句:類型標識符類型標識符 數(shù)組名數(shù)組名=new 類型標識符類型標識符元素個數(shù)元素個數(shù) 或或類型標識符類型標識符 數(shù)組名數(shù)組名=new 類型標識符類型標識符元素個數(shù)元素個數(shù)例如:例如:int sc =new int10; float weight=new float50v初始化數(shù)組后,通過數(shù)組的初始化數(shù)組后,通過數(shù)組的lengthlength獲取元素個數(shù)獲取元素個數(shù) 數(shù)組數(shù)組.length.length例如:例如:n=sc.length; /n=10 m=weight.le

6、ngth; /m=508賦初值初始化數(shù)組v可以在聲明數(shù)組的同時,給數(shù)組元素賦初值可以在聲明數(shù)組的同時,給數(shù)組元素賦初值v所賦初值的個數(shù)決定數(shù)組元素的數(shù)目所賦初值的個數(shù)決定數(shù)組元素的數(shù)目v其格式如下其格式如下: 類型標識符類型標識符 數(shù)組名數(shù)組名 = 初值表初值表 v初值表是用逗號隔開的初始值,例如:初值表是用逗號隔開的初始值,例如: int score=65,34,78,81,56,92,56,87,90,77;score0score99使用數(shù)組的好處v減少程序中的變量數(shù)量減少程序中的變量數(shù)量v統(tǒng)一的數(shù)組名,易于理解統(tǒng)一的數(shù)組名,易于理解v對數(shù)據(jù)元素的操作可以使用循環(huán)語句對數(shù)據(jù)元素的操作可以使

7、用循環(huán)語句一維數(shù)組元素的賦值和輸出都可以通過一維數(shù)組元素的賦值和輸出都可以通過單重循環(huán)語句單重循環(huán)語句完成完成【例補【例補5-105-10】輸入輸入10個學生的成績,統(tǒng)計最高分,平均分、個學生的成績,統(tǒng)計最高分,平均分、不及格人數(shù)及高于平均分的人數(shù)不及格人數(shù)及高于平均分的人數(shù) 定義數(shù)組定義數(shù)組sc10sc10用于存放用于存放1010個學生成績個學生成績 利用循環(huán)語句輸入成績并統(tǒng)計利用循環(huán)語句輸入成績并統(tǒng)計105.2 多維數(shù)組v二維數(shù)組的聲明二維數(shù)組的聲明二維數(shù)組經(jīng)常表示一個矩陣二維數(shù)組經(jīng)常表示一個矩陣二維數(shù)組的聲明方式與一維數(shù)組類似,只是要給出兩對二維數(shù)組的聲明方式與一維數(shù)組類似,只是要給出兩

8、對方括號。二維數(shù)組聲明形式如下:方括號。二維數(shù)組聲明形式如下: 類型標識符類型標識符 數(shù)組名數(shù)組名或或 類型標識符類型標識符 數(shù)組名數(shù)組名例如:例如:int a;int a; / / 第一個第一個叫做行,第二個叫做行,第二個叫做列叫做列11二維數(shù)組的初始化v先聲明數(shù)組再初始化先聲明數(shù)組再初始化用用newnew初始化二維數(shù)組初始化二維數(shù)組 數(shù)組名數(shù)組名= new = new 類型標識符類型標識符 行數(shù)行數(shù)列數(shù)列數(shù) 例如:例如:int a;int a; a=new int34; a=new int34;v聲明同時初始化聲明同時初始化 類型標識符類型標識符 數(shù)組名數(shù)組名=new =new 類型標識符

9、類型標識符 行數(shù)行數(shù)列數(shù)列數(shù) 或或 類型標識符類型標識符 數(shù)組名數(shù)組名=new =new 類型標識符類型標識符 行數(shù)行數(shù)列數(shù)列數(shù) 例如:例如:int a=new int34;int a=new int34;12int a=new int34;v數(shù)組中各元素通過兩個下標來區(qū)分數(shù)組中各元素通過兩個下標來區(qū)分v每個下標的最小值為每個下標的最小值為0 0,最大值分別比行數(shù)或列數(shù)少,最大值分別比行數(shù)或列數(shù)少1 1。v系統(tǒng)為該數(shù)組系統(tǒng)為該數(shù)組a a的的1212個元素分配存儲空間,形式如表所示:個元素分配存儲空間,形式如表所示:a0 0a0 1a0 2a03a1 0a1 1a1 2a1 3a2 0a2 1a

10、2 2a2 3行行列列二維數(shù)組的初始化v初始化后,通過屬性初始化后,通過屬性lengthlength獲取行數(shù)和列數(shù)獲取行數(shù)和列數(shù)獲取數(shù)組行數(shù):獲取數(shù)組行數(shù):數(shù)組名數(shù)組名.length.length 例:例:a.lengtha.length /值為值為3 3獲取數(shù)組列數(shù):獲取數(shù)組列數(shù):數(shù)組名數(shù)組名 行標行標.length.length 例例:a0.lengtha0.length /值為值為3 313int a=new int34;vJavaJava中,二維數(shù)組作為一維數(shù)組來處理中,二維數(shù)組作為一維數(shù)組來處理A A可看作一維數(shù)組,有可看作一維數(shù)組,有3 3個元素個元素a0a0、a1a1、a2a2每

11、個元素本身是一維數(shù)組,例:每個元素本身是一維數(shù)組,例:二維數(shù)組的初始化v在初始化時,可以各行單獨進行,允許各行元素不同、在初始化時,可以各行單獨進行,允許各行元素不同、 int c=new int3;int c=new int3; /c/c為為3 3行二維數(shù)組行二維數(shù)組 c0=new int1;c0=new int1; /c0/c0具有具有1 1個元素個元素 c1=new int3;c1=new int3; /c1/c1具有具有3 3個元素個元素 c2=new int5;c2=new int5; /c2/c2具有具有5 5個元素個元素a00 、a01、a02、a0314賦初值初始化二維數(shù)組類型

12、標識符類型標識符 數(shù)組名數(shù)組名=初值表初值表0,0,初值表初值表1,1,初值表初值表n;n;例:例:int gd=65,34,78,81,56,92,56,87,90, 92, 69, 75;/gd共有共有12個元素,元素個元素,元素gd00,gd01,gd02,gd10 , gd32的初始值分別為的初始值分別為65,34,78,75,如表所示,如表所示gd 00 65gd 01 34gd 02 78gd 10 81gd 11 56gd 12 92gd 20 56gd 21 87gd 22 90gd 30 92gd 31 69gd 32 75注意注意: :二維數(shù)組元素的賦值和輸出可以通過二維數(shù)

13、組元素的賦值和輸出可以通過雙重循環(huán)語句雙重循環(huán)語句完完成成155.3 數(shù)組的基本操作 v數(shù)組的引用數(shù)組的引用 對數(shù)組的應(yīng)用通常是對其元素的引用對數(shù)組的應(yīng)用通常是對其元素的引用數(shù)組元素可以被賦值、被輸出或參加表達式運算數(shù)組元素可以被賦值、被輸出或參加表達式運算 int age=new int3; age0=25; age2=2+age0 ;v數(shù)組的復(fù)制數(shù)組的復(fù)制可以通過循環(huán)語句可以通過循環(huán)語句也可以直接將一個數(shù)組賦值給另一數(shù)組也可以直接將一個數(shù)組賦值給另一數(shù)組 int a=new int6; /將將b數(shù)組的各元素值賦值數(shù)組的各元素值賦值a數(shù)組的相應(yīng)元素數(shù)組的相應(yīng)元素 int b=1,2,3,4,

14、5,6; for(int i=0;i6;i+) ai=bi; 或或 a=b;16Demo1int c,d, e,i, j;c=new int33;d=new int33;e=new int33;for(i=0;i3; i+) for (j=0; j3; j+) dij=i+j; cij=dij; e=d;c c、d d、e e數(shù)組各元素數(shù)組各元素0 1 2 1 2 3 2 3 4 17數(shù)組的基本操作v數(shù)組的輸出數(shù)組的輸出數(shù)組輸出通常是逐個元素結(jié)合循環(huán)語句實現(xiàn)數(shù)組輸出通常是逐個元素結(jié)合循環(huán)語句實現(xiàn) int a=new int6; for(int i=0;i6;i+) ai=i; System.o

15、ut.print(ai+” ”); 輸出輸出: :0 1 2 3 4 50 1 2 3 4 518例【5-2】一維數(shù)組的復(fù)制class ArrayC class ArrayC public static void main(String args) public static void main(String args) int a,b, i, j; int a,b, i, j; a=new int3; a=new int3; b=new int5; b=new int5; System.out.println(a.length=+a.length); System.out.println(a

16、.length=+a.length); for ( i=0; ia.length; i+) for ( i=0; ia.length; i+) ai=i; ai=i; System.out.print(ai+ ); System.out.print(ai+ ); System.out.println(); System.out.println(); /作用?作用? (接下(接下頁頁)19 System.out.println(Before array assignment);System.out.println(Before array assignment); System.out.prin

17、tln(b.length=+b.length);System.out.println(b.length=+b.length); for (j=0; jb.length; j+) for (j=0; jb.length; j+) bj=jbj=j* *10;10; System.out.print(bj+ System.out.print(bj+ ); ); System.out.println(); System.out.println(); b=a;b=a; / / 注意,數(shù)組注意,數(shù)組a a、b b長度不一樣長度不一樣 System.out.println(After array assi

18、gnment);System.out.println(After array assignment); System.out.println(b.length=+b.length);System.out.println(b.length=+b.length); for (j=0; jb.length; j+) for (j=0; jb.length; j+) System.out.print(bj System.out.print(bj+ ); System.out.println(); System.out.println(); a.length=30 1 2 Before array as

19、signmentb.length=50 10 20 30 40 After array assignmentb.length=30 1 2 20int c,d,i, j; int c,d,i, j; c=new int22; c=new int22; d=new int33; d=new int33; System. System.outout.println(Array d:);.println(Array d:); for(i=0;id.length; i+) for(i=0;id.length; i+) for (j=0; jdi.length; j+) for (j=0; jdi.le

20、ngth; j+) dij=i+j; dij=i+j; System. System.outout.print(dij+“ ); .print(dij+“ ); System. System.outout.println(); .println(); c=d; c=d; System. System.outout.println(Array c:);.println(Array c:); for(i=0;ic.length; i+) for(i=0;ic.length; i+) for (j=0; jci.length; j+) for (j=0; jaj,position=japositio

21、naj,position=jv故第故第i i輪的選擇和交換過程中,要進行輪的選擇和交換過程中,要進行n-in-i次的比較次的比較 for(i=1;in;i+)for(i=1;in;i+) p=i; p=i; for(j=i+1;j=n;j+) for(j=i+1;jaj) p=j; if (apaj) p=j; temp=ai;ai=ap;ap=temp; temp=ai;ai=ap;ap=temp;255.4 數(shù)組應(yīng)用舉例-排序v另一種排序法另一種排序法- -冒泡法冒泡法, ,基本思想基本思想: :從數(shù)組元素從數(shù)組元素a(0)a(0)到到a(n-1)a(n-1),將相鄰的兩個數(shù)兩兩進行比,將

22、相鄰的兩個數(shù)兩兩進行比較(共比較較(共比較n-1n-1次),若前一個數(shù)大于后一個數(shù),則進次),若前一個數(shù)大于后一個數(shù),則進行對調(diào)。一趟操作后,行對調(diào)。一趟操作后,a(n-1)a(n-1)已為最大數(shù)。已為最大數(shù)。再從數(shù)組元素再從數(shù)組元素a(0)a(0)到到a(n-2)a(n-2)作同樣操作后,結(jié)果是作同樣操作后,結(jié)果是a(n-a(n-2)2)成為次大數(shù)。成為次大數(shù)。重復(fù)以上步驟,直至只剩重復(fù)以上步驟,直至只剩a(0)a(0)和和a(1)a(1)作比較作比較, ,大的數(shù)放大的數(shù)放在在a(1),a(1),剩下的剩下的a(0)a(0)自然是最小數(shù)了自然是最小數(shù)了. .。26數(shù)組應(yīng)用舉例-一維數(shù)組【例補

23、【例補5-15-1】產(chǎn)生產(chǎn)生1010個個2 2位正整數(shù),按從小到大排序,輸入任位正整數(shù),按從小到大排序,輸入任一正整數(shù),插入到原有數(shù)據(jù)序列中,保持從小到大次序不變一正整數(shù),插入到原有數(shù)據(jù)序列中,保持從小到大次序不變【例補【例補5-25-2】任意輸入任意輸入n n個整數(shù),再輸入一個整數(shù),查找該數(shù)個整數(shù),再輸入一個整數(shù),查找該數(shù)在在n n個數(shù)中出現(xiàn)的位置和次數(shù)。個數(shù)中出現(xiàn)的位置和次數(shù)。27數(shù)組應(yīng)用舉例二維數(shù)組【例補【例補5-35-3】輸出楊輝三角型輸出楊輝三角型( (輸出輸出1010行行) )1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20

24、 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1【例補【例補5-45-4】求一個個位整數(shù)構(gòu)成的求一個個位整數(shù)構(gòu)成的5 5行行5 5列方陣對角線上元素列方陣對角線上元素之積之積解題解題: :定義一個定義一個1010行行1010列的二維數(shù)組列的二維數(shù)組a1010ai0=1;aii=1ai0=1;aii=1aij=ai-1j-1+ai-1jaij=ai-1j-1+ai-1j主對角線元素下標主對角線元素下標: :行號和列號相等行號和列號相等, ,即即i=ji=j副對角線元素下標副對角線元素下標:

25、 :行號、列號之和等于行號、列號之和等于4 4,即,即j=4-ij=4-i28數(shù)組應(yīng)用舉例-矩陣運算【例【例5-55-5】數(shù)學中的矩陣在數(shù)學中的矩陣在JavaJava中用二維數(shù)組實現(xiàn),本例中中用二維數(shù)組實現(xiàn),本例中要進行矩陣的加、乘運算。要進行矩陣的加、乘運算。 int c=1,2,3,4,5,6,7,8,9;int c=1,2,3,4,5,6,7,8,9; int d=2,2,2,1,1,1,3,3,3; int d=2,2,2,1,1,1,3,3,3;求求c+dc+d,c c* *d d ? ? 矩陣乘法運算矩陣乘法運算用數(shù)組用數(shù)組c c的第的第1 1行各個數(shù)與數(shù)組行各個數(shù)與數(shù)組d d的第

26、的第1 1列各個數(shù)對應(yīng)相乘后加起來,列各個數(shù)對應(yīng)相乘后加起來,就是乘法結(jié)果中第就是乘法結(jié)果中第1 1行第行第1 1列的數(shù)列的數(shù); ;用數(shù)組用數(shù)組c c的第的第1 1行各個數(shù)與數(shù)組行各個數(shù)與數(shù)組d d的第的第2 2列各個數(shù)對應(yīng)相乘后加起來,列各個數(shù)對應(yīng)相乘后加起來,就是乘法結(jié)果中第就是乘法結(jié)果中第1 1行第行第2 2列的數(shù);列的數(shù); 用數(shù)組用數(shù)組c c的第的第2 2行各個數(shù)與數(shù)組行各個數(shù)與數(shù)組d d的第的第1 1列各個數(shù)對應(yīng)相乘后加起來,列各個數(shù)對應(yīng)相乘后加起來,就是乘法結(jié)果中第就是乘法結(jié)果中第2 2行第行第1 1列的數(shù);列的數(shù);295.5 數(shù)組參數(shù)v在在javajava的過程中,允許參數(shù)是數(shù)組

27、。在使用數(shù)組參數(shù)時的過程中,允許參數(shù)是數(shù)組。在使用數(shù)組參數(shù)時: :在形式參數(shù)表中,數(shù)組名后的括號不能省略,括號個數(shù)和數(shù)在形式參數(shù)表中,數(shù)組名后的括號不能省略,括號個數(shù)和數(shù)組的維數(shù)相等。不需給出數(shù)組元素的個數(shù)組的維數(shù)相等。不需給出數(shù)組元素的個數(shù)在實際參數(shù)表中,數(shù)組名后不需括號在實際參數(shù)表中,數(shù)組名后不需括號class ArrayC4 class ArrayC4 /例【例【5-65-6】計算數(shù)組元素平均值】計算數(shù)組元素平均值 public static void main(String args) public static void main(String args) int c=1,2,3,4

28、,5,6,7,8,9; int c=1,2,3,4,5,6,7,8,9; int j; int j; System.out.println( Array c); System.out.println( Array c); for (j=0; jc.length; j+) for (j=0; jc.length; j+) System.out.print(cj+ ); System.out.print(cj+ ); System.out.println(); System.out.println(); System.out.println( Array average); System.out.

29、println( Array average); System.out.println( arrayAverage(c);System.out.println( arrayAverage(c); / / 調(diào)用數(shù)組調(diào)用數(shù)組 305.5 數(shù)組參數(shù)-DEMO/ / 通過通過“方法方法”計算數(shù)組元素的平均值,數(shù)組名作為形式參數(shù)計算數(shù)組元素的平均值,數(shù)組名作為形式參數(shù)static float arrayAverage(int d)static float arrayAverage(int d) float average=0 ; float average=0 ; for(int i=0;id.leng

30、th; i+) for(int i=0;id.length; i+) average=average+di; average=average+di; average=average/d.length; average=average/d.length; return average; return average; 程序運行結(jié)果如下:程序運行結(jié)果如下:Array cArray c1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9Array averageArray average5.05.0數(shù)組名做實際參數(shù)時,傳遞的是地址,而不是值數(shù)組名做實際參數(shù)時,傳遞的是地址,而不是值

31、即形式參即形式參數(shù)和實際參數(shù)具有相同的存儲單元。數(shù)和實際參數(shù)具有相同的存儲單元。形式參數(shù)值的改變將導(dǎo)致實際參數(shù)的值隨之改變形式參數(shù)值的改變將導(dǎo)致實際參數(shù)的值隨之改變315.5 數(shù)組參數(shù)-DEMO例【例【5-75-7】展示數(shù)組參數(shù)傳遞地址的特性展示數(shù)組參數(shù)傳遞地址的特性class ArrayC6 class ArrayC6 public static void main(String args) public static void main(String args) int c=1,2,3,4,5,6,7,8,9,10; int c=1,2,3,4,5,6,7,8,9,10; int i, j

32、; int i, j; System.out.println(“ System.out.println(“調(diào)用調(diào)用arrayMultiplyarrayMultiply之前的數(shù)組之前的數(shù)組);); for (i=0; ic.length; i+) for (i=0; ic.length; i+) for(j=0; jci.length; j+) for(j=0; jci.length; j+) System.out.print(cij+ ); System.out.print(cij+ ); System.out.println(); System.out.println(); arrayMul

33、tiply(c);arrayMultiply(c); / / 調(diào)用數(shù)組調(diào)用數(shù)組 32 System.out.println(“System.out.println(“調(diào)調(diào)用用arrayMultiplyarrayMultiply之后的之后的數(shù)組數(shù)組);); for (i=0; ic.length; i+) for (i=0; ic.length; i+) / What Do? / What Do? for(j=0; jci.length; j+) for(j=0; jci.length; j+) System.out.print(cij+ ); System.out.print(cij+ );

34、System.out.println(); System.out.println(); static void arrayMultiply(int d) static void arrayMultiply(int d) int k,l; int k,l; for (k=0; kd.length; k+) for (k=0; kd.length; k+) for(l=0; ldk.length; l+) for(l=0; ldk.length; l+) dkl=2 dkl=2* *dkl;dkl; System.out.println( In arrayMultiply); System.out

35、.println( In arrayMultiply); for (k=0; kd.length; k+) for (k=0; kd.length; k+) for(l=0; ldk.length; l+) for(l=0; ldk.length; l+) System.out.print(dkl+ ); System.out.print(dkl+ ); System.out.println(); System.out.println(); / / 方法方法arrayMultiplyarrayMultiply結(jié)束結(jié)束 / / 程序結(jié)束程序結(jié)束調(diào)用調(diào)用arrayMultiply前的數(shù)組前的數(shù)組1

36、 2 3 4 56 7 8 9 10In arrayMultiply2 4 6 8 1012 14 16 18 20調(diào)用調(diào)用arrayMultiply后的數(shù)組后的數(shù)組2 4 6 8 1012 14 16 18 2033【例例5-85-8】展示數(shù)組元素參數(shù)傳遞值的特性展示數(shù)組元素參數(shù)傳遞值的特性class ArrayC7 class ArrayC7 public static void main(String args) public static void main(String args) int c=1,10,100,1000; int c=1,10,100,1000; int j; in

37、t j; System.out.println(“ System.out.println(“數(shù)組在調(diào)用數(shù)組在調(diào)用elementMultiplyelementMultiply前前);); for (j=0; jc.length; j+) for (j=0; jc.length; j+) System.out.print(cj+ ); System.out.print(cj+ ); System.out.println(); System.out.println(); elementMultiply(c2);elementMultiply(c2); System.out.println(“ Sys

38、tem.out.println(“數(shù)組在調(diào)用數(shù)組在調(diào)用elementMultiplyelementMultiply后后););5.5 數(shù)組參數(shù)-DEMO34 for (j=0; jc.length; j+)for (j=0; jc.length; j+) System.out.print(cj+ ); System.out.print(cj+ ); System.out.println(); System.out.println(); / main / main 方法結(jié)束方法結(jié)束static void elementMultiply(int d) static void elementMult

39、iply(int d) d=2 d=2* *d;d; System.out.println(d=+d); System.out.println(d=+d); / elementMultiply / elementMultiply 方法結(jié)束方法結(jié)束 / / 程序結(jié)束程序結(jié)束35該程序的運行結(jié)果如下:該程序的運行結(jié)果如下:數(shù)組在調(diào)用數(shù)組在調(diào)用elementMultiply前前1 10 100 1000d=200 /在在elementMultiply中的輸出中的輸出數(shù)組在調(diào)用數(shù)組在調(diào)用elementMultiply后后1 10 100 1000數(shù)組做方法的參數(shù)時傳遞的是地址數(shù)組做方法的參數(shù)時傳遞的是

40、地址, ,但數(shù)組元素做但數(shù)組元素做參數(shù)時傳遞的是值。參數(shù)時傳遞的是值。36字符數(shù)組與字符串字符數(shù)組與字符串v字符數(shù)組指數(shù)組的元素是字符類型的數(shù)據(jù)。字符數(shù)組指數(shù)組的元素是字符類型的數(shù)據(jù)。要表要表“China”China”,可以使用如下的字符數(shù)組:,可以使用如下的字符數(shù)組: char country=C,h,i,n,a; System.out.println(country); /輸出輸出”Chian”Chian”要表示長度為要表示長度為5050的字符串,可以使用如下的字符數(shù)組:的字符串,可以使用如下的字符數(shù)組: char title= new char50;用字符數(shù)組表示字符串用字符數(shù)組表示字符

41、串, ,使用不方便使用不方便,Java,Java提供提供StringString類類5.6 字符串 37v字符串變量的聲明和初始化:字符串變量的聲明和初始化: String String 變量名;變量名; /先申明再初始化先申明再初始化 變量名變量名=new String();=new String(); 或或 /申明的同時初始化申明的同時初始化 String String 字符串變量字符串變量 = new String();= new String(); 例如:例如:String s=new String();String s=new String();v字符串賦值字符串賦值可以為字符串變量

42、賦一個字符串常量,可以為字符串變量賦一個字符串常量,也可以將一個字符串變量或表達式的值賦給字符串變量。也可以將一個字符串變量或表達式的值賦給字符串變量。 s1=Chinese people;s1=Chinese people;s2=s1; s2=s1; / s2/ s2的值為的值為“Chinese people”Chinese people”s3=a lot of+s2; s3=a lot of+s2; / s3/ s3的值為的值為“a lot of Chinese people”a lot of Chinese people”運算符運算符“+”+”的作用的作用是將前后的兩個字符串連接起來是將

43、前后的兩個字符串連接起來字符串 38v最簡單的創(chuàng)建字符串變量的方法最簡單的創(chuàng)建字符串變量的方法 String s1=Chinese people; 或或: String s1; s1=Chinese people;v字符串的輸出字符串的輸出字符串可以通過字符串可以通過println()println()或或print()print()語句輸出語句輸出 例如,以下語句序列為字符串變量例如,以下語句序列為字符串變量s s賦值并輸出其值:賦值并輸出其值:String s=All the world;System.out.println(s);字符串 39public class StringUsep

44、ublic class StringUse public static void main(String args) public static void main(String args) String s1, s2; String s1, s2; s1=new String(Students should ); s1=new String(Students should ); s2=new String(); s2=new String(); s2=study hard.; s2=study hard.; System.out.print(s1); System.out.print(s1)

45、; System.out.println(s2); System.out.println(s2); s2=learn english, too; s2=learn english, too; System.out.print(s1); System.out.print(s1); System.out.println(s2); System.out.println(s2); s2=s1+s2; s2=s1+s2; System.out.println(s2); System.out.println(s2); 【例例5-95-9 】字符串應(yīng)用字符串應(yīng)用該程序的運行結(jié)果如下:該程序的運行結(jié)果如下:S

46、tudents should study hard.Students should learn english, tooStudents should learn english, too40v字符串操作字符串操作 StringString類用很多成員方法來對字符串進行操作。類用很多成員方法來對字符串進行操作。 例:例:s=“I am a student.” Int length():返回字符串的長度。:返回字符串的長度。 s.length() /返回值返回值1515 char charAt(int index):返回字符串中第:返回字符串中第index個字符個字符 s.charAt(7) /

47、返回值返回值s s ,注意第,注意第1 1個字符序號個字符序號0 0 int indexOf(int ch):返回字符串中字符:返回字符串中字符ch第第1次出現(xiàn)的次出現(xiàn)的位置。位置。 s.indexOf(a) 或或 s.indexOf(97) /返回值返回值2 2 s.indexOf(A) /返回值返回值-1,-1,沒有指定的字符沒有指定的字符chch返回值為返回值為-1-1字符串操作 41 例:例:s=“I am a student.”indexOf(String str, int index):返回在該字符中,從返回在該字符中,從第第indexindex個位置開始,子字符串個位置開始,子字

48、符串strstr第第1 1次出現(xiàn)的位置。次出現(xiàn)的位置。 s.indexOf(“stu”,0)s.indexOf(“stu”,0) /返回值是返回值是7 7 s.indexOf(“stu”,9) s.indexOf(“stu”,9) /沒有找到,返回值是沒有找到,返回值是-1-1 substring (int index1, int index2):返回值是在該字返回值是在該字符串中,從第符串中,從第index1index1個位置開始,到第個位置開始,到第index2-1index2-1個位置個位置結(jié)束的子字符串。結(jié)束的子字符串。 s.substring(7,13)s.substring(7,1

49、3) /返回值是返回值是studenstuden s.substring(7)s.substring(7) /返回值是返回值是student.student.l若省略若省略index2,index2,從第從第index1index1個位置開始,到結(jié)束的子字符個位置開始,到結(jié)束的子字符串串 字符串操作 42例:例:s=student;vboolean equals(Object obj):將字符串與將字符串與objobj所表示的字所表示的字符串進行比較,如果兩者相等,返回值符串進行比較,如果兩者相等,返回值truetrue,否則,否則falsefalse s.equals(“Student”)

50、/返回值返回值falsefalsevboolean equalsIgnoreCase(String str):將字符串與將字符串與strstr所表示的字符串進行比較,但忽略大小寫,如果兩者相等,所表示的字符串進行比較,但忽略大小寫,如果兩者相等,返回值返回值truetrue,否則,否則falsefalse s.equalsIgnoreCase (“Student”) /返回值返回值truetrue字符串操作 43字符串操作 注意:注意:=也能進行字符串是否相等的比較也能進行字符串是否相等的比較, , 但但=比較的是比較的是地址指針地址指針, , 而而equalsequals比較的是實際內(nèi)容比較

51、的是實際內(nèi)容. .String s1=new String(Hello); String s2=new String(Hello); System.out.println(s1=s2); /輸出輸出falseSystem.out.println(s1.equals(s2); /輸出輸出true當要比較當要比較2 2個字符串是否相等時,應(yīng)用個字符串是否相等時,應(yīng)用equalsequals方法方法。44例:例:s=student;vint compareTo(String str):int compareTo(String str):將字符串與將字符串與strstr所表示的字符所表示的字符串進行比

52、較串進行比較, ,如果該字符串比如果該字符串比strstr表示的字符串大,返回正值表示的字符串大,返回正值若比若比strstr表示的字符串小,返回負值表示的字符串小,返回負值如果兩者相等,返回如果兩者相等,返回0 0返回值等于兩個字符串中第一對不相等字符的返回值等于兩個字符串中第一對不相等字符的ASCIIASCII碼的差值碼的差值 pareTo(“stuate”) /返回值返回值3 pareTo(swap) /返回值返回值-3 pareTo(student) /返回值返回值0字符串操作 45v 將將int, long , float, double, booleanint, long , float, double, boolean等基本類型數(shù)據(jù)等基本類型數(shù)據(jù) 轉(zhuǎn)換為轉(zhuǎn)換為StringString類型的方法:類型的方法:String.valueOf(String.valueOf(基本類型數(shù)據(jù)基本類型數(shù)據(jù)) )v 將字符串型數(shù)據(jù)轉(zhuǎn)換為其它基本類型的方法及實例將字符串型數(shù)據(jù)轉(zhuǎn)換為其它基本類型的方法及實例 方法方法返回值類型返回值類型返回值返回

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論