




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章第四章 數(shù)組與字符串?dāng)?shù)組與字符串4.1 數(shù)組數(shù)組4.2 字符串字符串4.3 向量向量4.1 數(shù)組數(shù)組由相同類型的若干項(xiàng)數(shù)據(jù)組成例如:public static void main(String args)其中其中args是是String類型的數(shù)組類型的數(shù)組占用連續(xù)的內(nèi)存地址數(shù)組的靜態(tài)性一旦創(chuàng)建就不能修改數(shù)組的長(zhǎng)度一旦創(chuàng)建就不能修改數(shù)組的長(zhǎng)度類似于動(dòng)態(tài)數(shù)組的類型類類Vector長(zhǎng)度可以變大或縮小長(zhǎng)度可以變大或縮小4.1 4.1 數(shù)組數(shù)組數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建(一維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類一維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型)型)1.指定數(shù)組名稱、數(shù)據(jù)類型指定數(shù)組名稱、數(shù)據(jù)類型(聲明數(shù)組
2、)聲明數(shù)組)一維數(shù)組變量的聲明格式有如下兩種一維數(shù)組變量的聲明格式有如下兩種:(1)數(shù)組元素的數(shù)據(jù)類型數(shù)組元素的數(shù)據(jù)類型 變量名變量名;(2)數(shù)組元素的數(shù)據(jù)類型數(shù)組元素的數(shù)據(jù)類型 變量名變量名 ;如:如: char s; Object o; String names; int c ; 4.1 4.1 數(shù)組數(shù)組2.2.為數(shù)組分配內(nèi)存空間:為數(shù)組分配內(nèi)存空間:Java數(shù)組實(shí)際上也是對(duì)象,所以數(shù)組實(shí)際上也是對(duì)象,所以可通過(guò)可通過(guò)new 關(guān)鍵字來(lái)創(chuàng)建。關(guān)鍵字來(lái)創(chuàng)建。var_name = new typesize; 示例示例: int c; / 聲明聲明 c = new int12; / 創(chuàng)建對(duì)象,并分
3、配內(nèi)存創(chuàng)建對(duì)象,并分配內(nèi)存聲明時(shí)不必指定數(shù)組的大小聲明時(shí)不必指定數(shù)組的大小上面的兩個(gè)語(yǔ)句可以簡(jiǎn)化成一個(gè)語(yǔ)句上面的兩個(gè)語(yǔ)句可以簡(jiǎn)化成一個(gè)語(yǔ)句int c = new int12; Object myobj; myobj = new Object2; myobj0 = new Object(); myobj1 = new Object(); 4.1 4.1 數(shù)組數(shù)組-初始化數(shù)組初始化數(shù)組基本數(shù)據(jù)類型的元素初始化為0值或false非基本數(shù)據(jù)類型的元素初始化為null 可以采用循環(huán)結(jié)構(gòu)初始化數(shù)組示例:double squares; squares = new double100; for (int i=
4、0; i squares.length; i+) squaresi = i*i; 4.1 4.1 數(shù)組數(shù)組通過(guò)初始化語(yǔ)句創(chuàng)建數(shù)組通過(guò)初始化語(yǔ)句創(chuàng)建數(shù)組Java語(yǔ)言允許通過(guò)數(shù)組的初始化語(yǔ)句創(chuàng)建數(shù)組語(yǔ)言允許通過(guò)數(shù)組的初始化語(yǔ)句創(chuàng)建數(shù)組示例示例: int n = 10, 20, 30, 40, 50 ;上面語(yǔ)句創(chuàng)建了一個(gè)含有五個(gè)元素的數(shù)組上面語(yǔ)句創(chuàng)建了一個(gè)含有五個(gè)元素的數(shù)組下標(biāo)值分別為下標(biāo)值分別為0, 1, 2, 3, 4這時(shí)不需要運(yùn)算符這時(shí)不需要運(yùn)算符new4.1 4.1 數(shù)組數(shù)組數(shù)組的使用數(shù)組的使用(一維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類一維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型)型)1.數(shù)組元素表示:數(shù)
5、組元素表示: 數(shù)組名數(shù)組名下標(biāo)下標(biāo), 數(shù)組名數(shù)組名下標(biāo)下標(biāo)1下標(biāo)下標(biāo)2 , 數(shù)組名數(shù)組名0數(shù)組名數(shù)組名n-12.Length域域3.一元數(shù)組元素的復(fù)制一元數(shù)組元素的復(fù)制 =;System.arraycopy(from fromIndex,to,toIndex,count)4.1 4.1 數(shù)組數(shù)組-多維數(shù)組多維數(shù)組數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建(多維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類多維數(shù)組,基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型)型)最常用的多維數(shù)組是二維數(shù)組最常用的多維數(shù)組是二維數(shù)組 int a = new int34;二維數(shù)組可以理解成如下圖示的表格二維數(shù)組可以理解成如下圖示的表格a 0 0 a 0 0 a 1 0
6、 a 1 0 a 2 0 a 2 0 a 0 1 a 0 1 a 1 1 a 1 1 a 2 1 a 2 1 a 0 2 a 0 2 a 1 2 a 1 2 a 2 2 a 2 2 a 0 3 a 0 3 a 1 3 a 1 3 a 2 3 a 2 3 行的下標(biāo)值行的下標(biāo)值列的下標(biāo)值列的下標(biāo)值示例示例 1類似于一維數(shù)組,進(jìn)行二維數(shù)組的聲明、創(chuàng)建類似于一維數(shù)組,進(jìn)行二維數(shù)組的聲明、創(chuàng)建(內(nèi)存分配內(nèi)存分配)與與初始化初始化示例示例:class J_FillArray public static void main (String args) int matrix = new int45; for
7、(int row=0; row 4; row+) for (int col=0; col 5; col+) matrixrowcol = row + col; / 內(nèi)部?jī)?nèi)部for循環(huán)結(jié)束循環(huán)結(jié)束 / 外部外部for循環(huán)結(jié)束循環(huán)結(jié)束 / 方法方法main結(jié)束結(jié)束 / 類類J_FillArray結(jié)束結(jié)束示例示例 2通過(guò)初始化語(yǔ)句創(chuàng)建數(shù)組示例: double c = 1.0, 2.0, 3.0, 4.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 ; 注意事項(xiàng)注意事項(xiàng)Java的多維數(shù)組實(shí)際上是的多維數(shù)組實(shí)際上是數(shù)組的數(shù)組數(shù)組的數(shù)組即創(chuàng)建以數(shù)組為元素的數(shù)組即創(chuàng)建以數(shù)
8、組為元素的數(shù)組意味著意味著: 二維數(shù)組的每一行可以具有不同的列數(shù)二維數(shù)組的每一行可以具有不同的列數(shù)示例:int a ;a = new int 3 ; / allocate rowsa 0 = new int 3 ; / allocate row 0a 1 = new int 2 ; / allocate row 1a.length 行數(shù)行數(shù)a i .length 第第i行列數(shù)行列數(shù)三維數(shù)組三維數(shù)組思維的擴(kuò)展: 一維數(shù)組二維數(shù)組三維數(shù)組示例:class J_Fill3DArray public static void main (String args ) int M = new int453;
9、 for (int row=0; row 4; row+) for (int col=0; col 5; col+) for (int ver=0; ver 3; ver+) Mrowcolver = row + col + ver; / 內(nèi)部?jī)?nèi)部for循環(huán)結(jié)束循環(huán)結(jié)束 / for循環(huán)結(jié)束循環(huán)結(jié)束 / 外部外部for循環(huán)結(jié)束循環(huán)結(jié)束 / 方法方法main結(jié)束結(jié)束 / 類類J_Fill3DArray結(jié)束結(jié)束注意事項(xiàng)注意事項(xiàng)Java允許數(shù)組的維數(shù)為: 三、四、或更大但是,慎用高維數(shù)組甚至三維數(shù)組在實(shí)際的應(yīng)用中也比較少出現(xiàn)4.1 4.1 數(shù)組數(shù)組示例示例1 1/ InitArray.java: in
10、itializing an arrayimport java.io.*;public class InitArray public static void main( String args ) int n = new int 10 ; for ( int i = 0; i n.length; i+ ) System.out.print( i + t + n i + n );4.1 4.1 數(shù)組數(shù)組示例示例2 2/ InitArray.javaimport java.io.*;public class InitArray public static void main( String args
11、 ) int n = 32, 27, 64, 18, 95, 14, 90, 70, 60,37 ; for ( int i = 0; i n.length; i+ ) System.out.print( i + t + n i + n“); 4.1 4.1 數(shù)組數(shù)組示例示例3 3/ InitArray.javaimport java.io.*;public class InitArray public static void main( String args ) final int ARRAY_SIZE = 10; int n = new int ARRAY_SIZE ; for ( in
12、t i = 0; i n.length; i+ ) n i = 2 + 2 * i; for ( int i = 0; i n.length; i+ ) System.out.print( i + t + n i + n“); / BubbleSort.javaimport java.applet.*;public class BubbleSort extends Applet public void init() int a = 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 ; for ( int i = 0; i a.length; i+ ) System.out.
13、print( a i + ); System.out.println( ); bubbleSort( a ); 4.1 4.1 數(shù)組數(shù)組示例示例4 4(排序)(排序)4.1 4.1 數(shù)組數(shù)組示例示例4 4 for ( int i = 0; i a.length; i+ ) System.out.print( a i + ); public void bubbleSort( int b ) for ( int pass = 1; pass b.length; pass+ ) for ( int i = 0; i b i + 1 ) swap( b, i, i + 1 ); public void
14、 swap( int c, int first, int second ) int hold; hold = c first ; c first = c second ; c second = hold; public void bubbleSort( int b ) for ( int pass = b.length - 1; pass 0; pass- ) for ( int i = 0; i b i + 1 ) swap(b,i,i + 1); 4.1 4.1 數(shù)組數(shù)組示例示例4 4/ JavaArrayUse.javapublic class JavaArrayUse public s
15、tatic void main( String args ) int i,j; int youngMaxLevel = 15; int young; young = new intyoungMaxLevel; for ( i = 0; i young.length; i+ ) youngi = new inti+1; young0 0 = 1; 4.1 4.1 數(shù)組數(shù)組示例示例4(4(楊輝三角型)楊輝三角型)for ( i = 1; i young.length; i+ ) youngi0 = 1; for ( j = 1; j youngi.length-1; j+ ) youngij =
16、youngi-1j-1+youngi-1j; youngiyoungi.length-1 = 1; for ( i = 0; i young.length; i+ ) for ( j = 0; j youngi.length; j+ ) System.out.print(youngij+ ); System.out.println(); 4.1 4.1 數(shù)組數(shù)組示例示例4 44.1 4.1 數(shù)組數(shù)組示例示例6 6(讀程序)讀程序)import java.applet.Applet;public class PassArray extends Applet public void init()
17、int a = 1, 2, 3, 4, 5 ; for ( int i = 0; i a.length; i+ ) System.out.print ( a i + ); System.out.println( ); modifyArray( a ); for ( int i = 0; i a.length; i+ ) System.out.print( a i + ); System.out.println( );4.1 4.1 數(shù)組數(shù)組示例示例6 6(讀程序)讀程序) modifyElement( a 3 ); System.out.print( a 3 ); public void mo
18、difyArray( int b ) for ( int j = 0; j b.length; j+ ) b j *= 2; public void modifyElement( int e ) e *= 2; 4.1 4.1 數(shù)組數(shù)組示例示例7 7/ Test.javapublic class Test public static void main( String args ) Point point = new Point( 7, 11 ); Circle circle = new Circle( 3.5, 22, 8 ); Cylinder cylinder = new Cylinde
19、r( 10, 3.3, 10, 10 ); Shape arrayOfShapes; arrayOfShapes = new Shape 3 ; arrayOfShapes 0 = point; 4.1 4.1 數(shù)組數(shù)組示例示例7 7 arrayOfShapes 1 = circle; arrayOfShapes 2 = cylinder; for ( int i = 0; i arrayOfShapes.length; i+ ) System.out.println(nn + arrayOfShapes i .getName() + : + arrayOfShapes i .toString
20、() ) 4.2 4.2 字符串字符串StringBuffer類類字符串字符串對(duì)對(duì)象象不變字符串不變字符串可變字符可變字符串串String類類1. 創(chuàng)建字符串創(chuàng)建字符串2. 使用字符串使用字符串不變字符串不變字符串String與與C語(yǔ)言不同語(yǔ)言不同: 字符字符(char)數(shù)組不是字符串?dāng)?shù)組不是字符串(String)String數(shù)值不必以數(shù)值不必以u(píng)0000結(jié)束結(jié)束String aString bString cHello World!StringString 常量雙引號(hào)括起來(lái)的字符序列雙引號(hào)括起來(lái)的字符序列示例示例: “Hello” 或或 “您好您好字符串賦值可以在聲明時(shí)賦值可以在聲明時(shí)賦值S
21、tring c = blue;c是是String類型的變量類型的變量“blue”是是String常量常量類 String:構(gòu)造方法(9個(gè)構(gòu)造方法,見(jiàn)API)1. 創(chuàng)建字符串創(chuàng)建字符串方法方法1:new方法方法 String str = new String();String str = new String( This is a string );方法方法2:初始化方法:初始化方法 String str =This is a string; String str ; str = This is a string ;示例示例/ J_StringConstructors.java; / 字符串構(gòu)造
22、方法例程字符串構(gòu)造方法例程public class J_StringConstructors public static void main(String args ) String s1 = null; String s2 = new String( ); String s3 = 您好您好!; String s4 = new String( s3 ); System.out.println(s1: + s1); System.out.println(s2: + s2); System.out.println(s3: + s3); System.out.println(s4: + s4); /
23、 方法方法main結(jié)束結(jié)束 / 類類J_StringConstructors結(jié)束結(jié)束s1不指向任何字符串對(duì)象不指向任何字符串對(duì)象String構(gòu)造方法構(gòu)造方法: 創(chuàng)建空字符串創(chuàng)建空字符串String構(gòu)造方法構(gòu)造方法: 創(chuàng)建新字符串創(chuàng)建新字符串字符串直接量字符串直接量2. 使用字符串使用字符串訪問(wèn):訪問(wèn):length(),charAt(),indexof(), lastIndexof(), getChars()等等修改:修改:concat(),replace(),substring(), toLowerCase(), toUpperCase()比較:比較:equals(),equalsIgnore
24、Case(), CompareTo(), RegionMatches()訪問(wèn):length( ), charAt( ) 和 getChars( )方法 length( )返回返回 String 的長(zhǎng)度的長(zhǎng)度與數(shù)組不同之處與數(shù)組不同之處: String不含有不含有 length成員域成員域方法charAt(int index) 獲得字符串指定位置的字符獲得字符串指定位置的字符方法getChars(int srcBegin, int srcEnd, char dst, int dstBegin) 拷貝字符串的部分字符序列拷貝字符串的部分字符序列到指定的字符數(shù)組到指定的字符數(shù)組的指定位置的指定位置查
25、找字符串(String)中的字符或子串方法方法indexOf 四種重載方法四種重載方法 indexOf 返回第一次找到的時(shí)下標(biāo)返回第一次找到的時(shí)下標(biāo) 如果沒(méi)有找到,則返回如果沒(méi)有找到,則返回-1示例:String name = CoolTools;System.out.println (name.indexOf(oo);indexOf()方法 lastIndexOf public int lastIndexOf(int ch, int fromIndex) 從指定位置往回查找,返回找到的最大的字符從指定位置往回查找,返回找到的最大的字符下標(biāo)位置下標(biāo)位置即返回滿足下面條件的最大值即返回滿足下面條
26、件的最大值:(this.charAt(k) = ch) & (k = 0; c-) dest.append(source.charAt(c); return dest.toString();4.3 向量向量向量所對(duì)應(yīng)的類是類java.util.Vector向量變量的聲明格式Vector 變量名變量名;示例Vector vs;創(chuàng)建向量實(shí)例對(duì)象創(chuàng)建向量實(shí)例對(duì)象Vector vs = new Vector( );Vector vo = new Vector( );增加元素增加元素public boolean add(E o)public void addElement(E obj)示例vs.
27、add(Tom);修改元素修改元素public E set(int index, E element)public void setElementAt(E obj, int index)刪除元素public void clear( )public void removeAllElements( )public E remove(int index)public void removeElementAt(int index)通過(guò)迭代器(iterator)獲取向量對(duì)象的各個(gè)元素類java.util.Vector的成員方法public Iterator iterator( )接口java.util.
28、Iterator的成員方法boolean hasNext( )接口java.util.Iterator的成員方法E next( )習(xí)題習(xí)題1. 隨機(jī)產(chǎn)生十個(gè)數(shù)進(jìn)行降序排序。隨機(jī)產(chǎn)生十個(gè)數(shù)進(jìn)行降序排序。2. 修改例子中的冒泡排序,以提高性能。修改例子中的冒泡排序,以提高性能。3. 命令行參數(shù)的使用命令行參數(shù)的使用:從命令行輸入需要排從命令行輸入需要排序的個(gè)數(shù)序的個(gè)數(shù),將隨機(jī)產(chǎn)生的數(shù)進(jìn)行升序排序。將隨機(jī)產(chǎn)生的數(shù)進(jìn)行升序排序。4. 編寫(xiě)一個(gè)應(yīng)用程序,讀入編寫(xiě)一個(gè)應(yīng)用程序,讀入 如如07/21/1999格式的日期,打印出如格式的日期,打印出如July 21,1999格式的日期。格式的日期。5. 拼寫(xiě)檢查器。拼寫(xiě)檢查器。/ StringTest.javapublic class StringTest public static void main( String args ) String s = new String( 07/21/1999 ); String s1 = s.substring(0,2); int m = Integer.parseInt( s1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新員工入職產(chǎn)品手冊(cè)
- 世界地圖集各樣民族故事讀后感
- 企業(yè)風(fēng)險(xiǎn)評(píng)估報(bào)告表
- 企業(yè)員工績(jī)效獎(jiǎng)勵(lì)激勵(lì)制度實(shí)施協(xié)議
- 汽車(chē)銷(xiāo)售排行榜
- 市場(chǎng)營(yíng)銷(xiāo)活動(dòng)效果評(píng)估與優(yōu)化實(shí)戰(zhàn)指南
- 環(huán)衛(wèi)公司勞動(dòng)合同書(shū)
- 高分子化學(xué)與材料合成考試要點(diǎn)解析
- 中小學(xué)生國(guó)學(xué)經(jīng)典故事解讀
- 酒店業(yè)投資經(jīng)營(yíng)與股權(quán)轉(zhuǎn)讓協(xié)議
- 北師版四下數(shù)學(xué)數(shù)學(xué)好玩教材分析公開(kāi)課課件教案
- 設(shè)計(jì)交底與圖紙會(huì)審會(huì)議紀(jì)要
- 北師大版完整版英語(yǔ)完形填空練習(xí)題40篇
- 統(tǒng)編版語(yǔ)文三年級(jí)上冊(cè)期中課外閱讀大闖關(guān)(含答案)
- 多樣生態(tài)茶園建設(shè)方案
- 莖木類中藥鑒定技術(shù)-通草、鉤藤的鑒定
- 輸液泵操作評(píng)分標(biāo)準(zhǔn)
- 北京醫(yī)調(diào)委官網(wǎng)換方申請(qǐng)書(shū)
- 公路工程交工竣工驗(yàn)收課件
- 四年級(jí)下冊(cè)英語(yǔ)說(shuō)課稿-Lesson 2 Is this your pencil?|冀教版
- 安裝幕墻用環(huán)形軌道施工方案
評(píng)論
0/150
提交評(píng)論