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

下載本文檔

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

文檔簡介

4.1數(shù)組

4.2字符串4.1數(shù)組4.1.1一維數(shù)組的定義一維數(shù)組的定義方式為:數(shù)組類型數(shù)組名[];或數(shù)組類型[]數(shù)組名;類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復(fù)合類型。數(shù)組名arrayName為一個合法的標(biāo)識符,[]?指明該變量是一個數(shù)組類型變量。聲明了一個整型數(shù)組,數(shù)組中的每個元素為整型數(shù)據(jù)。與C、C++?不同,Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此?[]?中不用指出數(shù)組中元素個數(shù),即數(shù)組長度,而且對于如上定義的一個數(shù)組是不能訪問它的任何元素的。我們必須為它分配內(nèi)存空間,這時要用到運算符new,其語法格式如下:數(shù)組名=new數(shù)組類型[數(shù)組的長度];為一個整型數(shù)組分配3個int型整數(shù)所占據(jù)的內(nèi)存空間。通常,這兩部分可以合在一起。4.1.2一維數(shù)組的初始化對數(shù)組元素可以按照上述的例子進(jìn)行賦值,也可以在定義數(shù)組的同時進(jìn)行初始化。用逗號(,)分隔數(shù)組的各個元素,系統(tǒng)自動為數(shù)組分配一定的內(nèi)存空間。靜態(tài)初始化靜態(tài)初始化如下:intintArray[]={1,2,3,4};StringstringArray[]={"abc","How","you"};動態(tài)初始化(1)簡單類型的數(shù)組,動態(tài)初始化如下:intintArray[];intArray=newint[5];(2)復(fù)合類型的數(shù)組,動態(tài)初始化如下:StringstringArray[];StringstringArray=newString[3]; //為數(shù)組中每個元素開辟引用空間stringArray[0]=newString("How"); //為第一個數(shù)組元素開辟空間stringArray[1]=newString("are"); //為第二個數(shù)組元素開辟空間stringArray[2]=newString("you"); //為第三個數(shù)組元素開辟空間4.1.3一維數(shù)組的引用定義了一個數(shù)組,并用運算符new為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個元素了。數(shù)組元素的引用方式為:數(shù)組名[下標(biāo)];如a[3],b[i](i為整型),c[6*I]?等。下標(biāo)從0開始,一直到數(shù)組的長度減1。對于上述的intArray數(shù)來說,它有3個元素,分別為intArray[0]、intArray[1]、intArray[2]。注意:沒有intArray[3]。另外,與C、C++?不同,Java對數(shù)組元素要進(jìn)行越界檢查以保證安全性。同時,對于每個數(shù)組都有一個屬性length來指明它的長度。例如:intArray.length指明數(shù)組intArray的長度。4.1.4多維數(shù)組Java中多維數(shù)組被看作數(shù)組的數(shù)組。例如,二維數(shù)組為一個特殊的一維數(shù)組,其每個元素又是一個一維數(shù)組。以下我們主要以二維數(shù)組為例來進(jìn)行說明,多維數(shù)組的情況類似。4.1.5二維數(shù)組的定義二維數(shù)組的定義方式為:數(shù)組類型數(shù)組名[][];與一維數(shù)組一樣,二維數(shù)組也要使用運算符new來分配內(nèi)存,才可以訪問每個元素。對多維數(shù)組來說,分配內(nèi)存空間有以下兩種方法:(1)直接為每一維數(shù)組分配內(nèi)存空間,如:inta[][]=newint[2][3];(2)從最高維數(shù)組開始,分別為每一維數(shù)組分配內(nèi)存空間,如:inta[][]=newint[2][];a[0]=newint[3];a[1]=newint[3];4.1.6二維數(shù)組的初始化為數(shù)組分配完內(nèi)存空間后,需要對數(shù)組進(jìn)行初始化,有兩種方式:(1)直接對每個元素進(jìn)行賦值,如:Inta[][]=newint[2][2];a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;(2)在定義數(shù)組的同時進(jìn)行初始化,如:inta[][]={{2,3},{1,5},{3,4}};定義了一個3?×?2的數(shù)組,并對每個元素賦值。4.1.7二維數(shù)組的引用引用二維數(shù)組中的每個元素,引用方式為:數(shù)組名[下標(biāo)1][下標(biāo)2]其中下標(biāo)1、下標(biāo)2分別為二維數(shù)組的第一、二維下標(biāo),可為整型常數(shù)或表達(dá)式,如a[2][3]等。同樣,每一維的下標(biāo)都從0開始。4.2字符串4.2.1字符串常量所謂的字符串指的是字符序列,它是組織字符的基本數(shù)據(jù)結(jié)構(gòu)。在Java語言中,把字符串當(dāng)作對象來處理,并提供了一系列方法對字符串進(jìn)行操作,使字符串更容易處理,也符合面向?qū)ο缶幊痰囊?guī)范。單個字符用單引號來表示,例如:'J'、'A'、'V'、'A':分別表示字符J、A、V、A。常量字符串用雙引號來表示,例如:"JAVA"、"Language"分別表示字符串JAVA、Language。字符串是一個字符序列,可以包含字母、數(shù)字和其他符號。Java中的字符串常量始終都是以對象的形式出現(xiàn)的。也就是說,每個字符串常量對應(yīng)一個String類的對象。4.2.2String類字符串1.String類字符串的定義String類是用來表示字符串常量的,用它創(chuàng)建的每個對象都是字符串常量,一經(jīng)建立就不能修改。創(chuàng)建對象的格式為:類型名對象名=new類型名([初始化值]);例如:Stringstr=newString("helloJava!");String類提供了很多方法,每個字符串常量對應(yīng)一個String類的對象,所以一個字符串常量可以直接調(diào)用String類中提供的方法。創(chuàng)建String類對象的構(gòu)造方法如下:Strings=newString():生成一個空串String(charchars[]):用字符數(shù)組chars創(chuàng)建一個字符串對象String(charchars[],intstartIndex,intnumChars):從字符數(shù)組chars中的位置startIndex起,numChars個字符組成的字符串對象。String(byteascii[],inthiByte):用字符數(shù)組ascii創(chuàng)建一個字符串對象,hiByte為Unicode字符的高位字節(jié)。對于ASCII碼來說為0,其他非拉丁字符集為非0。String(byteascii[],inthiByte,intstartIndex,intnumChars):其作用和參數(shù)意義同上。2.String類字符串的基本操作(1)?String類提供了length()、charAt()、indexOf()、lastIndexOf()、getChars()、getBytes()、toCharArray()、booleanequals(Objectobj)、equalsZgnoreCase(Stringstr)等方法。?publicintlength();此方法返回字符串的字符個數(shù)。?booleanequals(Objectobj)和equalsIgnoreCase(Stringstr)這兩個方法都用來比較兩個字符串的值是否相等,不同之處在于后者是忽略大小寫的。運算符“==”比較兩個字符串是否引用同一個實例;equals()和equalsIgnoreCase()則比較兩個字符串中對應(yīng)的每個字符值是否相等。為了避免錯誤,建議使用equals()和equalsIgnoreCase()。?publiccharcharAt(intindex)此方法返回字符串中index位置上的字符,其中index值的范圍是0~length-1。?publicintindexOf(intch);publiclastIndexOf(inch);此方法返回字符ch在字符串中出現(xiàn)的第一個和最后一個的位置。?publicintindexOf(Stringstr);publicintlastIndexOf(Stringstr);此方法返回子串str中第一個字符出現(xiàn)在字符串中的第一個和最后一個的位置。?publicintindexOf(intch,intfromIndex);publiclastIndexOf(inch,intfromIndex);此方法返回字符ch出現(xiàn)在字符串中fromIndex位置后的第一個和最后一個的位置。?publicintindexOf(Stringstr,intfromIndex);publicintlastIndexOf(Stringstr,intfromIndex);此方法返回子串str中的第一個字符出現(xiàn)在字符串中fromIndex位置后的第一個和最后一個的位置。?publicvoidgetchars(intsrcbegin,intend,charbuf[],intdstbegin);srcbegin為要提取的第一個字符在源串中的位置,end為要提取的最后一個字符在源串中的位置,字符數(shù)組buf[]存放目的字符串,dstbegin為提取的字符串在目的串中的起始位置。?publicvoidgetBytes(intsrcBegin,intsrcEnd,byte[]dst,intdstBegin);參數(shù)及用法同上,只是串中的字符均用8位表示。(2)修改字符串。String類提供了concat()、replace()、substring()、toLowerCase()、toUpperCase()等方法。?publicStringcontat(Stringstr);用來將當(dāng)前字符串對象與給定字符串str連接起來。?publicStringreplace(charoldChar,charnewChar);用來把串中出現(xiàn)的所有特定字符替換成指定字符,以生成新串。?publicStringsubstring(intbeginIndex);publicStringsubstring(intbeginIndex,intendIndex);用來得到字符串中指定范圍內(nèi)的子串。?publicStringtoLowerCase();把串中所有的字符變成小寫。?publicStringtoUpperCase();把串中所有的字符變成大寫。4.2.3StringBuffer類字符串1.StringBuffer類字符串的構(gòu)造方法Java語言中用來實現(xiàn)字符串的另一個類是StringBuffer類,與實現(xiàn)字符串常量的String類不同,StringBuffer類的每個對象都是可以擴(kuò)充和修改的字符串變量。為了對一個可變的字符串對象進(jìn)行初始化,StringBuffer類提供了以下幾種構(gòu)造方法:?StringBuffer();建立一個空的字符串對象。?StringBuffer(intlen);建立長度為len的字符串對象。?StringBuffer(Stringstr);根據(jù)一個已經(jīng)存在的字符串常量str來創(chuàng)建一個新的StringBuffer對象,該StringBuffer對象的內(nèi)容和已經(jīng)存在的字符串常量str相一致。2.StringBuffer類字符串的基本操作(1)?StringBuffer類提供了length()、charAt()、getChars()、capacity()等方法。?publicintlength();用來返回字符串緩沖區(qū)的長度(字符數(shù))。?publicintcapacity();用來得到字符串緩沖區(qū)的容量,它與length()方法所返回的值不同。?publicsynchronizedcharcharAt(intindex);用來返回字符串緩沖區(qū)中特定位置的字符。publicsynchronizedvoidgetChars(intsrcBegin,intsrcEnd,chardst[],intdstBegin);用來把字符從字符串緩沖區(qū)復(fù)制到目標(biāo)字符數(shù)組dst中。?publicsynchronizedvoidsetLength(intnewLength);用來設(shè)置字符串緩沖區(qū)的長度。?toString();用來把字符串緩沖區(qū)的數(shù)據(jù)轉(zhuǎn)換為字符串。(2)修改字符串。StringBuffer類提供了append()、insert()、setCharAt()等方法。如果操作后的字符超出已分配的緩沖區(qū),則系統(tǒng)會自動為它分配額外的內(nèi)存空間。?publicsynchronizedStringBufferappend(Stringstr);用來在已有字符串末尾添加一個字符串str。?publicsynchronize

溫馨提示

  • 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

提交評論