




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5.1數(shù)組5.1.1數(shù)組聲明在Java中,數(shù)組是一種專門的類型,它是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素的數(shù)據(jù)類型都是相同的。對(duì)元素的確定是由數(shù)組名和它的下標(biāo)實(shí)現(xiàn)的,如a[0]代表數(shù)組a的第一個(gè)元素,a[1]代表數(shù)組a的第二個(gè)元素,依次類推。Java的數(shù)組聲明采用與C語言類似的形式。數(shù)組可分為一維數(shù)組和多維數(shù)組。它們的聲明的形式為:
typearrayName[][[]...];
或另一等價(jià)形式:
type[][[]...]arrayName;其中,type是Java語言的任意數(shù)據(jù)類型;arrayName為數(shù)組名,它是一個(gè)合法的Java標(biāo)識(shí)符;[]在這里表示指明是數(shù)組,[[]...]表示指明是數(shù)組的方括號(hào)對(duì),即方括號(hào)對(duì)可以有多個(gè)。它們的數(shù)量,表明數(shù)組維數(shù)。例如:
intcount[];//一維整型數(shù)組count charch[][];//二維字符型數(shù)組ch
float[]fNum;//一維浮點(diǎn)型數(shù)組fNum
后一種數(shù)組聲明形式體現(xiàn)了Java的純面向?qū)ο蟮奶卣?。如下例所示?/p>
int[]TestArray(intarraySize) { int[]aId=newint[arraySize]; returnaId; }5.1.2創(chuàng)建數(shù)組空間Java數(shù)組聲明中,不需要指明數(shù)組大小,這是因?yàn)閿?shù)組聲明并未為數(shù)組元素分配存儲(chǔ)單元。要為數(shù)組元素分配存儲(chǔ)單元,必須顯示使用new運(yùn)算符實(shí)現(xiàn)。其格式如下:
arrayName[][[]...]=newtype[Size1][[Size2]...];
或
arrayName=newtype[Size1][[Size2]...];
其中,Size1等為分配給相對(duì)應(yīng)的維的大小,經(jīng)new運(yùn)算符分配存儲(chǔ)空間后,就可以對(duì)數(shù)組中的元素引用了。聲明數(shù)組與為數(shù)組分配存儲(chǔ)單元兩部分,可以合在一起,它們的格式如下:typearrayName[][[]...]=newtype[Size1][[Size2]...];
或type[][[]...]arrayName=newtype[Size1][[Size2]...];例如:
intcount[]=newint[10]; charch[][]=newchar[3][5]; float[]fNum=newfloat[20];5.1.3數(shù)組元素的引用及初始化
對(duì)已經(jīng)分配了存儲(chǔ)空間的數(shù)組(由new運(yùn)算符實(shí)現(xiàn)),就可以對(duì)數(shù)組中的每一個(gè)元素引用。下標(biāo)是放在數(shù)組名后面[]中的,通過對(duì)下標(biāo)的操作來引用元素。我們可以賦值給元素,也可以使用元素的值。數(shù)組元素引用的形式為:
arrayName[index1][[]...]其中,index1等為數(shù)組的下標(biāo)。數(shù)組元素下標(biāo)是從0開始的,所以最后一個(gè)元素的下標(biāo)為arraySize-1。對(duì)于每一個(gè)數(shù)組,都有一個(gè)屬性length,來指明數(shù)組的長度。例如:
intcount[]=newint[10]; //count[0],count[1],...,count[9];
charch[][]=newchar[3][5]; //ch[0][0],ch[0][1],...,ch[2][4];
float[]fNum=newfloat[20]; //fNum[0],fNum[1],...,fNum[19]
這三個(gè)數(shù)組的屬性分別為:
count.length=10 ch.length=15 fNum.length=20數(shù)組元素的引用及初始化在聲明數(shù)組時(shí),也可以同時(shí)對(duì)數(shù)組進(jìn)行初始化。它的一維形式如下:typearrayName[]={Value1,Value2,...,ValueN};例如:
floatmyf[]={1,2,3,4,5,6} intmyint[][]={{1,2,3},{4,5,6}}; //intmyint[][]=newmyint[2][3];與C或C++語言不一樣,Java對(duì)數(shù)組元素的下標(biāo)要進(jìn)行越界檢查,以確保數(shù)據(jù)的安全。5.2字符串
字符串是編程中經(jīng)常要用到的數(shù)據(jù)結(jié)構(gòu),它是字符的序列,從某種程度上來說類似于字符的數(shù)組。實(shí)際上,在C語言中,字符串就是用字符數(shù)組來實(shí)現(xiàn)的。而在面向?qū)ο蟮腏ava語言中,字符串是用類來實(shí)現(xiàn)的。程序中用到的字符串分成兩大類:字符串常量:在Java中存放字符串常量的對(duì)象屬于String類;字符串變量:對(duì)于字符串變量,由于程序經(jīng)常需要對(duì)它做添加、插入、修改之類的操作,所以一般都存放在StringBuffer類的對(duì)象中。5.2.1String類字符串常量用String類的對(duì)象表示。字符常量是用單引號(hào)擴(kuò)起來的單個(gè)字符,例如:‘a(chǎn)’、‘/n’等;字符串常量是用雙引號(hào)擴(kuò)起來的字符序列,例如:“a”、“/n”、“Hello”等。C語言中的字符串是由數(shù)組組成的,每個(gè)字符串的末尾以”\0”標(biāo)志;而Java的字符串常量,通常作為String類的對(duì)象存在,有專門的屬性來規(guī)定它的長度。對(duì)于所有用雙引號(hào)擴(kuò)起來的字符串常量,系統(tǒng)都會(huì)為它創(chuàng)建一個(gè)無名的String類型對(duì)象。1.創(chuàng)建String對(duì)象
String類的構(gòu)造函數(shù)及其使用方法如下:publicString():用來創(chuàng)建一個(gè)空的字符串變量。publicString(Stringvalue):利用已存在的字符串常量創(chuàng)建一個(gè)新的String對(duì)象,可以是用雙引號(hào)擴(kuò)起來的直接常量。publicString(StringBufferbuffer):用利用已存在的StringBuffer對(duì)象為新創(chuàng)建String對(duì)象初始化。publicString(charvalue[]):利用已存在的字符數(shù)組的內(nèi)容初始化新建的String對(duì)象。
下面是創(chuàng)建String對(duì)象的例子:Strings; //聲明一個(gè)String對(duì)象,此時(shí)s的值為空。s=newString(“abc”); //為s開辟內(nèi)存空間,并初始化。Strings=newString(“abc”); //把上兩個(gè)語句的功能合二為一。Strings="abc"; //這里的賦值是一種特殊的省略寫法,Java系統(tǒng)會(huì)自動(dòng)為用雙引號(hào)擴(kuò)起來的字符串常量創(chuàng)建一個(gè)String對(duì)象,所以該語句的實(shí)際效果同上。2.求字符串常量的長度
publicintlength();例子:
Strings="Hello!"; System.out.println(s.length()); Stringt=“你過得可好?”; System.out.println(t.length());結(jié)果:663.判斷字符串的前綴、后綴publicbooleanstartsWith(Stringprefix);publicbooleanendsWith(Stringsuffix);例1:如成都地區(qū)的郵政編碼以61開頭。
if(s.startsWith(“61”) System.out.println(“成都地區(qū)”);例2:老居民身份證號(hào)碼最后一位代表性別。if(s.endsWith("0")||s.endsWith("2")||s.endsWith("4")||s.endsWith("6")||s.endsWith("8")) System.out.println("此人是女性!");4.字符串中單個(gè)字符的查找
publicintindexOf(intch); publicintindexOf(intch,intfromIndex);方法一:查找字符ch在當(dāng)前字符串中第一次出現(xiàn)的位置,如果找不到則返回-1。方法二:從在當(dāng)前字符串的第fromIndex位字符之后,開始查找字符ch第一次出現(xiàn)的位置如果找不到則返回-1。下面兩個(gè)方法與上面的方法類似,只是從尾部往前開始查找:
publicintlastIndexOf(intch); publicintlastIndexOf(intch,intfromIndex);例子:Strings=“Java是面向?qū)ο蟮恼Z言,
JavaScript是腳本語言?!?inti=s.indexOf((int)'J');System.out.println(i);intj=s.indexOf((int)'J',6);System.out.println(j);inta=s.lastIndexOf((int)'J');System.out.println(a);intb=s.lastIndexOf((int)'J',10);System.out.println(b);結(jié)果:0131305.字符串中子串的查找publicintindexOf(Stringstr);publicintindexOf(Stringstr,intfromIndex);publicintlastIndexOf(Stringstr);publicintlastIndexOf(Stringstr,intfromIndex);publiccharcharAt(intindex);//獲取當(dāng)前字符串中第index位的字符例子:Strings=“Java是面向?qū)ο蟮恼Z言,JavaScript是腳本語言?!?inti=s.indexOf(“語言”);System.out.println(i);intj=s.indexOf(“語言”,12);System.out.println(j);charc=s.charAt(5);System.out.println(c);結(jié)果:1026面6.比較兩個(gè)字符串publicintcompareTo(StringanotherString);publicbooleanequals(ObjectanoObject);publicbooleanequalsIgnoreCase(StringanotherString);方法一:如果當(dāng)前字符串與參數(shù)字符串完全相同,則compareTo()方法返回0;如果當(dāng)前字符串按字母序大于參數(shù)字符串,則compareTo()方法返回大于0的整數(shù);反之,則返回小于0的整數(shù)。方法二:equals重載Object類的方法,如果當(dāng)前字符串與參數(shù)字符串完全相同,則返回真,否則返回假。方法三:equalsIgnoreCase與方法equals的用法相似,只是它比較時(shí)不計(jì)大小寫。
Strings1="Hello!";Strings2="hello!";
booleanb1=s1.equals(s2);
booleanb2=s1.equalsIgnoreCase(s2);System.out.println(b1);System.out.println(b2);Strings="abc",s3="aab",s4="abd",s5="abc";
int
i,j,k;i=pareTo(s3);System.out.println(i);j=pareTo(s4);System.out.println(j);k=pareTo(s5);System.out.println(k);
結(jié)果:falsetrue1-107.連接字符子串
publicStringconcat(Stringstr);
該方法把參數(shù)字符串連接到當(dāng)前字符串的尾部,并返回這個(gè)連接而成的字符串,但當(dāng)前字符串本身不改變。 例子:Strings="Hello";System.out.println(s.concat("World!"));System.out.println(s);結(jié)果:HelloWorld!Hello5.2.2StringBuffer類StringBuffer類的每個(gè)對(duì)象都是可以擴(kuò)充和修改的字符串變量。1.創(chuàng)建StringBuffer對(duì)象
StringBuffer類的構(gòu)造函數(shù)如下:
publicStringBuffer(); //創(chuàng)建了一個(gè)空的StringBuffer對(duì)象
publicStringBuffer(intlength); //給出了新建的StringBuffer對(duì)象的長度
publicStringBuffer(Stringstr); //利用一個(gè)已經(jīng)存在的字符串String對(duì)象來初始化StringBuffer對(duì)象。例子:StringBuffermyStrBuff1=newStringBuffer();StringBuffermyStrBuff2=newStringBuffer(5);StringBuffermyStrBuff3=newStringBuffer("Hello!");2.字符串變量的擴(kuò)充、修改和操作兩組用來擴(kuò)充其中所包含的字符的方法:
publicStringBuffer.append(參數(shù)類型參數(shù)名);
//參數(shù)類型.toString() publicStringBuffer.insert(int
插入位置,參數(shù)類型參數(shù)名);例子:
StringBuffermyStrBuff=newStringBuffer(); myStrBuff.append("Hello,Guys!"); System.out.println(myStrBuff.toString()); myStrBuff.insert(6,30); System.out.println(myStrBuff.toString());結(jié)果:
Hello,Guys! Hello,30Guys!注意:
println方法不接受StringBuffer類型的參數(shù),若希望在屏幕上顯示出來,必須先調(diào)用toString方法把它轉(zhuǎn)換成字符串常量。StringBuffer的用來修改字符串的方法:
publicvoidsetCharAt(intindex,charch);例子:StringBuffermyStrBuff=newStringBuffer("goat");System.out.println(myStrBuff.toString());myStrBuff.setCharAt(0,'c');System.out.println(myStrBuff.toString());結(jié)果:
goat coat3.字符串的賦值和加法字符串是經(jīng)常使用的數(shù)據(jù)類型,為了編程方便,Java編譯系統(tǒng)中引入了字符串的加法和賦值。例子:
StringmyStr="Hello,"; myStr=myStr+"Guys!";這兩個(gè)語句初看是乎有問題,因?yàn)镾tring是字符串常量,實(shí)際上它們相當(dāng)于:StringmyStr=newStringBuffer().append("Hello,").toString();myStr=newStringBuffer().append(MyStr). append("Guys!").toString();5.2.3JavaApplication命令行參數(shù)JavaApplication程序中用用main()方法中的參數(shù)args[]來接受命令行參數(shù)。該參數(shù)是一個(gè)字符串?dāng)?shù)組,每個(gè)數(shù)組元素保存一個(gè)輸入的命令行參數(shù)。
publicclassUsePara{publicstaticvoidmain(String
args[]){
inta0,a1,a2;
if(args.length<2){
System.out.println("運(yùn)行本程序應(yīng)提供兩個(gè)命令行參數(shù)");System.exit(0);}a0=Integer.parseInt(args[0]);a1=Integer.parseInt(args[1]);//Integer數(shù)據(jù)類型類的parseInt方法把字符串型轉(zhuǎn)換為整型數(shù)a2=a0*a1;System.out.println(a0+"*"+a1+"="+a2);}}運(yùn)行程序:javaUsePara2616運(yùn)行結(jié)果:26*16=4165.3語言基礎(chǔ)類庫Object類數(shù)據(jù)類型類Math類System類5.3.1Object類Object類是Java中所有類的直接或間接父類。它的主要方法如下:protectedObjectclone();
生成當(dāng)前對(duì)象的一個(gè)拷貝,并返回這個(gè)復(fù)制對(duì)象。publicbooleanequals(Objectobj);
比較兩個(gè)對(duì)象是否相同,是則返回true。publicfinalClassgetClass();
獲取當(dāng)前對(duì)象所屬的類信息,返回Class對(duì)象。ptotectedvoidfinalize();
定義回收當(dāng)前對(duì)象所需完成的清理工作。publicStringtoString();
返回當(dāng)前對(duì)象的有關(guān)信息。5.3.2數(shù)據(jù)類型類表:數(shù)據(jù)類型類與對(duì)應(yīng)的基本數(shù)據(jù)類型數(shù)據(jù)類型類基本數(shù)據(jù)類型BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglongInteger類MAX_VALUE域和MIN_VALUE域規(guī)定了int類型的最大值和最小值。構(gòu)造函數(shù)publicInteger(intvalue);publicInterger(Strings);數(shù)據(jù)類型轉(zhuǎn)換publicdoubledoubleValue();publicintintValue();publiclonglongValue();字符串與int量的轉(zhuǎn)換publicStringtoString()
把當(dāng)前對(duì)象所對(duì)應(yīng)的int量轉(zhuǎn)化為字符串。publicstacticintparseInt(Strings)
可方便的把字符串轉(zhuǎn)換為int量。例子:inti=Integer.parseInt(“250”);其它字符串轉(zhuǎn)換方法publicstacticIntergervalueOf(Strings)例子:inti=Integer.valueOf(“250”).intValue();其它數(shù)據(jù)類型:例子:floatf=Float.parseFloat(“25.0;) Doubled=Double.parseDouble(“25.7890); Longl=Long.parseLong(“25”);5.3.3Math類publicfinalstaticdoubleE;//數(shù)學(xué)常量epublicfinalstaticdoublePI;//圓周率常量publicstaticdoubleabs(doublea);//絕對(duì)值publicstaticdoubleacos(doublea);//反余弦publicstaticdoubleexp(doublea);//e的參數(shù)次冪publicstaticdoublelog(doublea);//自然對(duì)數(shù)publicstaticdoubleramdom();//產(chǎn)生0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)連帶擔(dān)保借款合同模板
- 道路拓寬及改造工程合同
- 辦公用房租賃合同英文范本
- 廚師服務(wù)合同樣本
- 夫妻共同購房合同條款
- 女方凈身出戶離婚法律合同模板
- 跨境融資合同(一)
- 職業(yè)技術(shù)學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目合同
- 新能源汽車電機(jī)技術(shù)演進(jìn)與產(chǎn)業(yè)鏈創(chuàng)新考核試卷
- 文化產(chǎn)業(yè)與體育賽事結(jié)合考核試卷
- 江蘇省常州市教育學(xué)會(huì)2023-2024學(xué)年下學(xué)期八年級(jí)數(shù)學(xué)考試卷
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 2024年瓦斯爆炸事故專項(xiàng)應(yīng)急演練桌面推演腳本
- 2024年遼寧大連中遠(yuǎn)海運(yùn)川崎船舶工程有限公司招聘筆試參考題庫含答案解析
- 《單層廠房鋼結(jié)構(gòu)》
- 八年級(jí)下冊二次根式作業(yè)設(shè)計(jì)
- 人音版二年級(jí)上冊第六課《跳起舞》 單元作業(yè)設(shè)計(jì)
- 第43講閉合電路歐姆定律(講義)
- (2024年)面神經(jīng)炎課件完整版
- 在社區(qū)結(jié)對(duì)共建簽約儀式上的講話3篇
- 2023年湖北省煙草專賣局(公司)考試真題
評(píng)論
0/150
提交評(píng)論