jave培訓(xùn):數(shù)組及字符處理ppt課件_第1頁
jave培訓(xùn):數(shù)組及字符處理ppt課件_第2頁
jave培訓(xùn):數(shù)組及字符處理ppt課件_第3頁
jave培訓(xùn):數(shù)組及字符處理ppt課件_第4頁
jave培訓(xùn):數(shù)組及字符處理ppt課件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四講 數(shù)組及字符處置1、數(shù)組Array2、字符處置String1、數(shù)組一維數(shù)組:定義一維數(shù)組的定義方式為: type arrayName ; 其中類型(type)可以為Java中恣意的數(shù)據(jù)類型,包 括簡單類型和組合類型,數(shù)組名arrayName為一個 合法的標(biāo)識符, 指明該變量是一個數(shù)組類型變量。 例如: int intArray ; 聲明了一個整型數(shù)組,數(shù)組中的每個元素為整型數(shù)據(jù)。 我們還可以定義一個復(fù)合類型的數(shù)組,例如: Date dateArray ;聲明了一個包容復(fù)合數(shù)據(jù)類型Date的數(shù)組。 與C、C+不同,Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此 中不用指出數(shù)組中元素的個

2、數(shù),即數(shù)組長度,而且對于如上定義的一個數(shù)組是不能訪問它的任何元素的。必需經(jīng)過初始化后,才干運(yùn)用數(shù)組的元素。1、數(shù)組一維數(shù)組:定義 除了這種定義數(shù)組的方式之外,java言語還提供了其他的定義方式,如下所示:type arrayName; 對于以上舉出的例子,我們也可以這樣定義:int intArray; Date dateArray;1、數(shù)組一維數(shù)組:定義一維數(shù)組定義之后,必需經(jīng)過初始化才可以援用。數(shù)組的初始化分為靜態(tài)初始化和動態(tài)初始化兩種: 靜態(tài)初始化:在定義數(shù)組的同時對數(shù)組元素進(jìn)展初始化,例如: int intArray =1,2,3,4;/定義了一個含有4個 / 元素的int型數(shù)組。1、數(shù)

3、組一維數(shù)組:初始化 動態(tài)初始化:運(yùn)用運(yùn)算符new為數(shù)組分配空間,對于簡單類型的數(shù)組,其格式如下: type arrayName =new typearraySize; type arrayName=new typearraySize;對于復(fù)合類型的數(shù)組,需求經(jīng)過兩步空間分配。 首先: type arrayName =new typearraySize; 然后:arrayName0=new type(paramList); arrayNamearraySize-1=new type(paramList);1、數(shù)組一維數(shù)組:初始化例如:String stringArrar; /定義一個String

4、類型的數(shù)組stringArray = new String3; /給數(shù)組stringArray分配3個運(yùn)用 /空間,初始化每個援用值為nullstringArray0=new String(“how);stringArray1=new String(“are);stringArray2=new String(“you);初始化各數(shù)組元素1、數(shù)組一維數(shù)組:初始化當(dāng)定義了一個數(shù)組,并用運(yùn)算符new為它分配了內(nèi)存空間后,就可以援用數(shù)組中的每一個元素了。元素的援用方式為: arrayNameindex index為數(shù)組下標(biāo),可以是整型常數(shù)或表達(dá)式,如:arrayName1, arrayNamei, a

5、rrayName6*i等。下標(biāo)是0序的,即從0開場,不斷到數(shù)組長度減1。1、數(shù)組一維數(shù)組:援用 另外,與C、C+中不同,Java對數(shù)組元素要進(jìn)展越界檢查以保證平安性。同時,對于每個數(shù)組都有一個屬性length指明它的長度,例如: intArray.length指明數(shù)組intArray的長度。 1、數(shù)組一維數(shù)組:邊境檢查 public class ArrayTest public static void main( String args ) int i; int a = new int5; for( i=0; i=0; i- ) System.out.println(a+i+ = +ai);

6、該程序?qū)?shù)組中的每個元素賦值,然后按逆序輸出。 1、數(shù)組一維數(shù)組:例如運(yùn)轉(zhuǎn)結(jié)果為:C:java ArrayTest a4 = 4a3 = 3 a2 = 2 a1 = 1a0 = 01、數(shù)組一維數(shù)組:例如在任何言語中,多維數(shù)組都被看作數(shù)組的數(shù)組。比如二維數(shù)組是一個特殊的一維數(shù)組,其每一個元素又是一個一維數(shù)組。我們主要以二維數(shù)組為例來闡明,高維數(shù)組與此類似。1、數(shù)組多維數(shù)組二維數(shù)組的定義方式 type arrayName ; 例如: int intArray ; 也可以采用另一種定義方式: type arrayName;與一維數(shù)組一樣,這時對數(shù)組元素也沒有分配內(nèi)存空間,同樣要運(yùn)用運(yùn)算符new來分配

7、內(nèi)存,然后才可以訪問每個元素。1、數(shù)組二維數(shù)組:定義二維數(shù)組的初始化也分為靜態(tài)和動態(tài)兩種。 靜態(tài)初始化:在定義數(shù)組的同時為數(shù)組分配空間。 int intArray =1,2,2,3,3,4;不用指出數(shù)組每一維的大小,系統(tǒng)會根據(jù)初始化時給出的初始值的個數(shù)自動算出數(shù)組每一維的大小。1、數(shù)組二維數(shù)組:初始化動態(tài)初始化:對高維數(shù)組來說,分配內(nèi)存空間有下面兩種方法:1.直接為每一維分配空間,如: type arrayName =new typearraylength1arraylength2例如: int a =new int23;1、數(shù)組二維數(shù)組:初始化2.從最高維開場而且必需從最高維開場,分別為每一

8、維分配空間,如: String s =new String2 ; s0=new String2; s1=new String3; s00=new String(“Good); s01=new String(“Luck); s10=new String(“to); s11=new String(“you); s12=new String(“!);1、數(shù)組二維數(shù)組:初始化二維數(shù)組的援用 對二維數(shù)組中每個元素,援用方式為: arrayNameindex1index2 其中index1和index2為數(shù)組下標(biāo),為整型常數(shù)和表達(dá)式,都是0序的。二維數(shù)組舉例 兩個矩陣相乘,參照參考書在課余時間上機(jī)練習(xí)。1

9、、數(shù)組二維數(shù)組:援用及例如數(shù)組是用來表達(dá)一組同類型數(shù)據(jù)的數(shù)據(jù)構(gòu)造在Java中數(shù)組是定長的,數(shù)組的大小不會動態(tài)變化數(shù)組變量的值是數(shù)組對象實(shí)例的援用在java.util包中的Arrays類提供了一些操作數(shù)組的方法在java.util包中的Vector提供了動態(tài)變長數(shù)組的功能,Vector的容量可以隨著需求變化1、數(shù)組java.util.Arraysint binarySearch(type a, type key)數(shù)組a必需曾經(jīng)排序,否那么前往值無意義當(dāng)數(shù)組a中有反復(fù)的值時,該方法前往的值不確定假設(shè)key存在,那么前往它在數(shù)組a中的位置假設(shè)不存在,那么前往它的“-(插入位置-1)void fill

10、(type a, type val)void fill(type a, int fromIndx, int toIndex, type val)包括afromIndx,但不包括atoIndexfromIndx= toIndex時,范圍是一個空的范圍1、數(shù)組java.util.Arraysboolean equals(type a, type a2)兩個數(shù)組大小一樣,并且每一個元素相等兩個null數(shù)組是相等的1、數(shù)組java.util.Arraysvoid sort(type a)void sort(type a, int fromIndx, int toIndex)void sort(type

11、 a, Comparatorc)void sort(type a, int fromIndx, int toIndex, Comparatorc)包括afromIndx,但不包括atoIndexfromIndx= toIndex時,范圍是一個空的范圍排序算法都具有n*log(n)的計算復(fù)雜性,效率高排序算法都保證穩(wěn)定,即排序算法不會改動相等元素的順序?qū)Σ煌愋偷臄?shù)組,算法的實(shí)現(xiàn)并不完全一樣可以用本人的Comparator對象聲明自定義的順序1、數(shù)組java.util.Arraysjava.lang.Systemvoid arraycopy(Objectsrc, intsrc_position,

12、 Objectdst, intdst_position, intlength)范圍不能越界可對任何同類型的數(shù)組進(jìn)展復(fù)制數(shù)組復(fù)制過程中做嚴(yán)厲的類型檢查更詳細(xì)的內(nèi)容參見JDK文檔1、數(shù)組數(shù)組的復(fù)制3、字符串 字符串是字符的序列,它是組織字符的根本數(shù)據(jù)構(gòu)造,從某種程度上來說有些類似于字符的數(shù)組。在Java中,字符串被當(dāng)作對象來處置。程序中需求用到的字符串可以分為兩大類,一類是創(chuàng)建之后不會再做修正和變動的字符串常量;另一類是創(chuàng)建之后允許再做更改和變化的字符串變量。對于字符串常量,由于程序中經(jīng)常需求對它做比較,搜索之類的操作,所以通常把它放在一個具有一定稱號的對象之中,由程序?qū)υ搶ο笸瓿缮鲜霾僮鳌?在J

13、ava中,存放字符串常量的對象用String類,對于字符串變量,由于程序中經(jīng)常需求對它做添加,插入,修正等操作,普通存放在StringBuffer類的對象中。3、字符串String字符串常量運(yùn)用雙引號括住的一串字符,比如: Hello world! Java編譯器自動為每一個字符串常量生成一個String類 的實(shí)例,因此可以用字符串常量直接初始化一個String對 象,如: String s=Hello world! ;要創(chuàng)建類String的一個對象并進(jìn)展初始化,需求調(diào)用類String的構(gòu)造方法。類String中提供了下面的一些構(gòu)造方法:String( ):無參數(shù)的缺省的構(gòu)造方法用來創(chuàng)建一個空

14、串。 String s = new String( ); String( String value):利用曾經(jīng)存在的字符串常量創(chuàng)建一個新的String對象,該對象的內(nèi)容與給出的字符串常量一致。 String s=new String(“hello);String( char value ):經(jīng)過給構(gòu)造方法傳送一個字符數(shù)組可以創(chuàng)建一個非空串。char chars = a , b , c ; String s = new String( chars ) ; 3、字符串String:創(chuàng)建String( char , int startIndex, int numChars ):這種方法用來創(chuàng)建一個非

15、空串,并且指明所創(chuàng)建的字符串在字符數(shù)組中的起始地址以及所包含的字符個數(shù)。char chars = a , b , c , d , e , f ;String s = new String ( chars , 2 , 3 ); 該方法生成的串s為“cde。(留意數(shù)組的下標(biāo)從0開場)3、字符串String:創(chuàng)建String( byte mybyte, byte hibyte ):由于在Internet上,格式采用八位的ASCII碼,所以Java的類String提供了從byte型數(shù)組進(jìn)展初始化的構(gòu)造方法。其中hibyte指明各字符的高位字節(jié),對于通常所用的ASCII碼,必需將高位字節(jié)聲明為零,而其他

16、的非拉丁文字符那么置為非零。byte mybyte = 97 , 98 , 99 ; String s = new String( mybyte , 0 );該方法構(gòu)造的字符串s是“abc。3、字符串String:創(chuàng)建String( byte mybyte, byte hibyte , int startIndex , int numChars ): 這種構(gòu)造方法與String(char ,int startIndex,int numChars)類似,只是初始化的數(shù)組類型不同。byte mybyte = 80 , 81, 82, 83, 84, 85 ;String s = new Strin

17、g ( mybyte , 0, 2, 3 ); 該方法構(gòu)造的字符串s是“RST。String(StringBuffer buffer):這個構(gòu)造函數(shù)利用一個曾經(jīng)存在的StringBuffer對象為新建的String對象初始化。3、字符串String:創(chuàng)建 1. length public int length( ) 此方法前往字符串的字符個數(shù),如:String s = abc; System.out.println( s.length( ) ); 那么將顯示字符個數(shù)為3。3、字符串String:根本方法2. charAt public char charAt (int index )該方法前往

18、字符串中index位置上的字符,其中index值的范圍是0length-1。3. getChars假設(shè)要從字符串中提取一個以上的字符,那么可以用此方法:public void getchars (int srcbegin,int end,char buf,int dstbegin)其中,srcbegin為要提取的第一個字符在源串中的位置,end為要提取的最后一個字符在源串中的位置,字符數(shù)組buf存放目的字符串,dstbegin為提取的字符串在目的串中的起始位置。3、字符串String:根本方法4. getbytespublic void getbytes (int srcbegin,int e

19、nd,byte byt,int dstbegin )類似于上一個方法,只是串中的字符均用8位表示,參數(shù)及用法同上。5. indexOf和lastIndexOf為了在給定的字符串中檢索特定的字符或子串,類String提供了上面兩種方法,并經(jīng)過方法重寫更方便的處置這類問題。這兩種方法中,假設(shè)查找勝利,那么前往匹配勝利的字符的位置,假設(shè)沒有查找到,那么都前往 -1。 int indexOf ( int ch) int lastIndexOf ( int ch) 前往字符ch在字符串中出現(xiàn)的第一個和最后一個位置。3、字符串String:根本方法int indexOf(String str)int la

20、stindexOf(String str)前往子串str中第一個字符在字符串中出現(xiàn)的始末位置。int indexOf ( int ch, int fromIndex) int lastIndexOf ( int ch, int fromIndex)前往字符ch在字符串中位置fromIndex以后出現(xiàn)的始末位置。int indexOf (String str,int fromIndex) int lastIndexOf (String str , int fromIndex)前往子串str中的第一個字符在字符串中位置fromIndex以后出現(xiàn)的始末位置。3、字符串String:根本方法6. 在J

21、ava中,運(yùn)算符“可以用來實(shí)現(xiàn)字符串的銜接,如:String s = “He is + age + “years old.假設(shè)整數(shù)型變量age的值為15,那么,s的值為“He is 15 yearsOld。7. compareTopublic int compareTo ( String str ) 該方法按字典次序比較兩個字符串的大小,假設(shè)源串較小,那么前往一個小于0的值,如相等那么前往0,否那么前往一個大于0的值。3、字符串String:根本方法8. regionMatchesboolean regionMatches( int toffset , String other , int o

22、offset , int len ) boolean regionMatches( boolean ignoreCase , int toffset , String other , int ooffset , int len ) 上述兩個方法都是用來進(jìn)展方式匹配的,匹配勝利那么前往true,否那么前往false。其中,toffset和ooffset分別指明當(dāng)前字符串和參數(shù)字符串中所要比較的子串的起始索引位置,len指明比較的長度,而ignoreCase指明比較時能否區(qū)分大小寫。對于第一種方法,比較是區(qū)分大小寫的。Ex:regionMatches(2, abcdef, 2, 3), 此時“cd

23、e為方式,與indexOf類似。3、字符串String:根本方法 9. equals和equalsIgnoreCasepublic boolean equals( object str) public boolean equalsIgnoreCase( object str )判別兩個字符串能否相等,那么可以用此方法。相等那么前往 true,不等那么前往false,兩種方法的區(qū)別在于 equalsIgnoreCase不區(qū)分字母大小寫,而equals那么須區(qū)分。10.其他方法public String concat(String str);將當(dāng)前字符串對象與給定的字符串str銜接起來。3、字符串

24、String:根本方法public String replace(char oldChar,char newChar)將串中出現(xiàn)的特定字符用新的字符替代。public String substring(int beginIndex)public String substring(int beginIndex,int endIndex)用來得到字符串中指定范圍內(nèi)的子串。public String toLowerCase()把串中的一切字符轉(zhuǎn)換成小寫public String toUpperCase()把串中的一切字符轉(zhuǎn)換成大寫3、字符串String:根本方法class StringCopyMod

25、ify public static void main(String args ) String s = new String(We will go further to modify a String by copy! ); System.out.println(From String + s + ); String sub1 = s.substring(20); String sub2 = s.substring(0,19); System.out.println(“Get a sub string from index 20 to the end:+ sub1); System.out.

26、println(“Get a sub string from index 0 to 19: + sub2); String cons=sub2.concat(sub1); System.out.println(“Concat two sub string into one:n + cons); 3、字符串String:例如運(yùn)轉(zhuǎn)結(jié)果為: From String “We will go further to modify a String by copyGet a sub string from index 20 to the end:to modify a String by copyGet a

27、 sub string from index 0 to 19:We will go furtherConcat two sub strings into one:We will go further to modify a String by copy可見,經(jīng)過拷貝得到新的字符串是并不改動原字符串的值。3、字符串String:例如 StringBuffer( ) 建立一個空串的緩沖區(qū),長度為16。 StringBuffer ( int length) 建立一個長度為length的空串緩沖區(qū)。 StringBuffer ( String str) 初始化緩沖區(qū)內(nèi)容為給定的字符串str,并提供另1

28、6個字符的空間供再次分配。 類似于Vector3、字符串StringBuffer:創(chuàng)建除了方法length(),charAt(),getChars()以外,還有以下幾種方法。1. capacity public int capacity( ) 此方法前往字符串緩沖區(qū)的長度,即總的可供分配的字符個數(shù)。3、字符串StringBuffer:根本方法class demoOfStringBuffer public void main (String buf ) StringBuffer sb = new StringBuffer (abc); System.out.println (buffer= +

29、sb ); System.out.println (length= + sb.length() System.out.println ( capacity= + sb.capacity(); 從運(yùn)轉(zhuǎn)結(jié)果我們可以看到為附加處置保管了空間。留意:capacity()與length()的區(qū)別。C:java demoOfStringBuffer buffer=abclength=3capacity=192. append public synchronized StringBuffer append(對象類型 對象名) append方法將指定的參數(shù)對象轉(zhuǎn)化成字符串,附加在原來的字符串對象之后。3. insert public synchronized StringBuffer insert(int 插入位置,對象類型 對象名) 在指定的位置插入給出的參數(shù)對象所轉(zhuǎn)化而得的字符串。3、字符串StringBuffer:根本方法4. setChatAt() public synchronized void setCharAt(int index,char ch) 用來設(shè)置指定索引index位置的字符值。5. setLength pub

溫馨提示

  • 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

提交評論