java基礎(chǔ)20天學(xué)會(huì)1課程1入門08string_第1頁
java基礎(chǔ)20天學(xué)會(huì)1課程1入門08string_第2頁
java基礎(chǔ)20天學(xué)會(huì)1課程1入門08string_第3頁
java基礎(chǔ)20天學(xué)會(huì)1課程1入門08string_第4頁
java基礎(chǔ)20天學(xué)會(huì)1課程1入門08string_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

常用API(String、ArrayList)API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)Java寫好的程序(功能),咱們可以直接調(diào)用。Oracle也為Java提供的這些功能代碼提供了相應(yīng)的API文檔(使用說明書)。String簡(jiǎn)單介紹String類定義的變量可以用于存儲(chǔ)字符串,同時(shí)String類提供了很多操作字符串的功能,我們可以直接使用。需要跟正確的用戶名和密碼進(jìn)行比較。String的內(nèi)存原理String定義變量存儲(chǔ)字符串String類提供了哪些APIString解決實(shí)際案例能夠利用String的常用API去解決實(shí)際場(chǎng)景的業(yè)務(wù)需求,真正做到學(xué)以致用需要知道如何創(chuàng)建字符串對(duì)象,并使用String定義變量指向該字符串對(duì)象。字符串對(duì)象在內(nèi)存中的原理是什么樣。能夠解決一些字符串的常見面試題關(guān)于String類同學(xué)們需要學(xué)會(huì)什么能夠說出并使用String類提供的操作字符串的功能:遍歷、替換、截取、相等,包含…StringString類概述String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試StringString類概述String類常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試ArrayList簡(jiǎn)單介紹ArrayList代表的是集合類,集合是一種容器,與數(shù)組類似,不同的是集合的大小是不固定的。通過創(chuàng)建ArrayList的對(duì)象表示得到一個(gè)集合容器,同時(shí)ArrayList提供了比數(shù)組更好用,更豐富的API(功能)給程序員使用。購物車使用集合對(duì)象來存儲(chǔ)商品對(duì)象更合適隨時(shí)可能添加新商品對(duì)象進(jìn)來(個(gè)數(shù)不確定)也隨時(shí)可能刪除商品對(duì)象ArrayList常用APIArrayList集合如何創(chuàng)建對(duì)象ArrayList解決實(shí)際問題能夠使用ArrayList存儲(chǔ)對(duì)象,并完成數(shù)據(jù)搜索,刪除等常見業(yè)務(wù)需求要知道如何利用ArrayList創(chuàng)建對(duì)象代表集合容器來存放數(shù)據(jù)。能夠說出并使用ArrayList類提供的豐富的元素操作的功能:添加、獲取、刪除、修改等功能關(guān)于ArrayList類同學(xué)們需要學(xué)會(huì)什么能夠使用ArrayList存儲(chǔ)自定義的對(duì)象,并清楚ArrayList集合存儲(chǔ)對(duì)象的底層原理ArrayList存儲(chǔ)自定義對(duì)象ArrayList集合概述ArrayList集合快速入門ArrayList對(duì)泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型的對(duì)象ArrayList集合案例:元素搜索StringString類概述String類常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試ArrayListString概述java.lang.String類代表字符串,String類定義的變量可以用于指向字符串對(duì)象,然后操作該字符串。Java程序中的所有字符串文字(例如“abc”)都為此類的對(duì)象。String其實(shí)常被稱為不可變字符串類型,它的對(duì)象在創(chuàng)建后不能被更改。String類的特點(diǎn)詳解Stringname="小黑";String

schoolName="黑馬程序員";publicstaticvoidmain(String[]args){

Stringname="傳智";

name+="教育";name+="中心";

System.out.println(name);

}從上述代碼可以看出字符串變量name指向的字符串對(duì)象,那為何還說字符串不可變呢?字符串對(duì)象存在哪里?以“”方式給出的字符串對(duì)象,在字符串常量池中存儲(chǔ)。publicstaticvoidmain(String[]args){

Stringname="傳智";

name+="教育";name+="中心";

System.out.println(name);

}字符串常量池“傳智"控制臺(tái)傳智教育中心“教育"“中心"棧內(nèi)存堆內(nèi)存“傳智教育"“傳智教育中心"main方法Stringname地址1.String是什么,可以做什么?字符串類型,可以定義字符串變量指向字符串對(duì)象。2.String是不可變字符串的原因?

String變量每次的修改其實(shí)都是產(chǎn)生并指向了新的字符串對(duì)象。原來的字符串對(duì)象都是沒有改變的,所以稱不可變字符串。StringString類概述String類的常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試ArrayListpublicclassStringDemoAPI3{

publicstaticvoidmain(String[]args){

StringsysLoginName=“itheima”;

Scannersc=newScanner(System.in);

System.out.println(“請(qǐng)您輸入您的登錄名稱");

StringloginName=sc.next();

System.out.println(sysLoginName==loginName);

}

}結(jié)論:字符串的內(nèi)容比較不適合用“==”比較。字符串的內(nèi)容比較字符串的內(nèi)容比較:推薦使用String類提供的“equals”比較:只關(guān)心內(nèi)容一樣即可方法名說明public

boolean

equals

(Object

anObject)將此字符串與指定對(duì)象進(jìn)行比較。只關(guān)心字符內(nèi)容是否一致!public

boolean

equalsIgnoreCase

(String

anotherString)將此字符串與指定對(duì)象進(jìn)行比較,忽略大小寫比較字符串。只關(guān)心字符內(nèi)容是否一致!1、如果是字符串比較應(yīng)該使用使用什么方式進(jìn)行比較,為什么?使用String提供的equals方法。只關(guān)心內(nèi)容一樣就返回true。2、開發(fā)中什么時(shí)候使用==比較數(shù)據(jù)基本數(shù)據(jù)類型比較時(shí)使用。StringString類概述String類的常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試ArrayList方法名說明publicintlength?()返回此字符串的長(zhǎng)度publiccharcharAt?(intindex)獲取某個(gè)索引位置處的字符publicchar[]toCharArray?():將當(dāng)前字符串轉(zhuǎn)換成字符數(shù)組返回publicStringsubstring(intbeginIndex,intendIndex)根據(jù)開始和結(jié)束索引進(jìn)行截取,得到新的字符串(包前不包后)publicStringsubstring(intbeginIndex)從傳入的索引處截取,截取到末尾,得到新的字符串publicStringreplace(CharSequencetarget,CharSequencereplacement)使用新值,將字符串中的舊值替換,得到新的字符串publicString[]split(Stringregex)根據(jù)傳入的規(guī)則切割字符串,得到字符串?dāng)?shù)組返回String常用APIStringString類概述String類的常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類常見面試ArrayListString類開發(fā)驗(yàn)證碼功能需求:隨機(jī)產(chǎn)生一個(gè)5位的驗(yàn)證碼,每位可能是數(shù)字、大寫字母、小寫字母。分析:定義一個(gè)String類型的變量存儲(chǔ)驗(yàn)a-zA-Z0-9之間的全部字符。循環(huán)5次,隨機(jī)一個(gè)范圍內(nèi)的索引,獲取對(duì)應(yīng)字符連接起來即可。模擬用戶登錄功能需求:模擬用戶登錄功能,最多只給三次機(jī)會(huì)。分析:系統(tǒng)后臺(tái)定義好正確的登錄名稱,密碼。使用循環(huán)控制三次,讓用戶輸入正確的登錄名和密碼,判斷是否登錄成功,登錄成功則不再進(jìn)行登錄;登錄失敗給出提示,并讓用戶繼續(xù)登錄。手機(jī)號(hào)碼屏蔽需求鍵盤錄入一個(gè)手機(jī)號(hào),將中間四位號(hào)碼屏蔽,最終效果為:分析鍵盤錄入一個(gè)字符串。調(diào)用字符串對(duì)象的截取API,截取字符串前三位、后四位。將前三位連接“****”然后繼續(xù)連接后四位,輸出最終結(jié)果即可。StringString類概述String類的常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類筆試題ArrayList創(chuàng)建字符串對(duì)象的2種方式

方式一:直接使用“”定義。(推薦方式)方式二:通過String類的構(gòu)造器創(chuàng)建對(duì)象。Stringname="傳智教育";構(gòu)造器說明publicString()創(chuàng)建一個(gè)空白字符串對(duì)象,不含有任何內(nèi)容publicString(Stringoriginal)根據(jù)傳入的字符串內(nèi)容,來創(chuàng)建字符串對(duì)象publicString(char[]chs)根據(jù)字符數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象publicString(byte[]chs)根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象有什么區(qū)別嗎?(面試??迹?/p>

Strings1="abc";

Strings2="abc";

System.out.println(s1==s2);//true

char[]chs={'a','b','c'};

Strings3=newString(chs);

Strings4=newString(chs);

System.out.println(s3==s4);//false以“”方式給出的字符串對(duì)象,在字符串常量池中存儲(chǔ),而且相同內(nèi)容只會(huì)在其中存儲(chǔ)一份。通過構(gòu)造器new對(duì)象,每new一次都會(huì)產(chǎn)生一個(gè)新對(duì)象,放在堆內(nèi)存中。publicclassTest{

publicstaticvoidmain(String[]args){

Strings1="abc";

Strings2="abc";

System.out.println(s1==s2);

}

}棧內(nèi)存堆內(nèi)存字符串常量池"abc"控制臺(tái)true通過“”定義字符串內(nèi)存原理方法:main方法區(qū)Test.classmainStrings1Strings26acbcfc06acbcfc0publicclassTest{

publicstaticvoidmain(String[]args){

char[]chs={'a','b','c'};

Strings1=newString(chs);

Strings2=newString(chs);

System.out.println(s1==s2);}

}棧內(nèi)存堆內(nèi)存控制臺(tái)false通過new構(gòu)造器得到字符串對(duì)象方法:main方法區(qū)Test.classmainchar[]chsStrings1Strings2'a''b''c'6acbcfc0"abc"34ab23"abc"56abf431、字符串對(duì)象的特點(diǎn)有哪些?

雙引號(hào)創(chuàng)建的字符串對(duì)象,在字符串常量池中存儲(chǔ)同一個(gè)。通過new構(gòu)造器創(chuàng)建的字符串對(duì)象,在堆內(nèi)存中分開存儲(chǔ)。StringString類概述String類的常用方法-字符串內(nèi)容比較String類的常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)String類創(chuàng)建對(duì)象的2種方式String類筆試題ArrayListString常見面試題問題:下列代碼的運(yùn)行結(jié)果是?publicclassTest2{

publicstaticvoidmain(String[]args){

Strings2=newString("abc");

Strings1="abc";

System.out.println(s1==s2);

}

}false這句代碼實(shí)際上創(chuàng)建了兩個(gè)對(duì)象堆內(nèi)存"abc"字符串常量池"abc"String常見面試題publicclassTest4{

publicstaticvoidmain(String[]args){

Strings1="abc";

Strings2="a"+"b"+"c";

System.out.println(s1==s2);

}

}Java存在編譯優(yōu)化機(jī)制,程序在編譯時(shí):“a”+“b”+“c”會(huì)直接轉(zhuǎn)成"abc"truepublicclassTest3{

publicstaticvoidmain(String[]args){

Strings1="abc";

Strings2="ab";

Strings3=s2+"c";

System.out.println(s1==s3);

}

}falseStringString類概述String類創(chuàng)建對(duì)象的2種方式String類常見面試題String類常用方法-字符串內(nèi)容比較String類常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)ArrayListpublicclassStringDemoAPI3{

publicstaticvoidmain(String[]args){

StringsysLoginName=“itheima”;

Scannersc=newScanner(System.in);

System.out.println(“請(qǐng)您輸入您的登錄名稱");

StringloginName=sc.next();

System.out.println(sysLoginName==loginName);

}

}結(jié)論:字符串的內(nèi)容比較不適合用“==”比較。字符串的內(nèi)容比較字符串的內(nèi)容比較:推薦使用String類提供的“equals”比較:只關(guān)心內(nèi)容一樣即可方法名說明public

boolean

equals

(Object

anObject)將此字符串與指定對(duì)象進(jìn)行比較。只關(guān)心字符內(nèi)容是否一致!public

boolean

equalsIgnoreCase

(String

anotherString)將此字符串與指定對(duì)象進(jìn)行比較,忽略大小寫比較字符串。只關(guān)心字符內(nèi)容是否一致!1、如果是字符串比較應(yīng)該使用使用什么方式進(jìn)行比較,為什么?使用String提供的equals方法。只關(guān)心內(nèi)容一樣就返回true。2、開發(fā)中什么時(shí)候使用==比較數(shù)據(jù)基本數(shù)據(jù)類型比較時(shí)使用。StringString類概述String類創(chuàng)建對(duì)象的2種方式String類常見面試題String類常用方法-字符串內(nèi)容比較String類常用方法-遍歷、替換、截取、分割操作String類案例實(shí)戰(zhàn)ArrayList方法名說明publicintlength?()返回此字符串的長(zhǎng)度publiccharcharAt?(intindex)獲取某個(gè)索引位置處的字符publicchar[]toCharArray?():將當(dāng)前字符串轉(zhuǎn)換成字符數(shù)組返回publicStringsubstring(intbeginIndex,intendIndex)根據(jù)開始和結(jié)束索引進(jìn)行截取,得到新的字符串(包前不包后)publicStringsubstring(intbeginIndex)從傳入的索引處截取,截取到末尾,得到新的字符串publicStringreplace(CharSequencetarget,CharSequencereplacement)使用新值,將字符串中的舊值替換,得到新的字符串publicString[]split(Stringregex)根據(jù)傳入的規(guī)則切割字符串,得到字符串?dāng)?shù)組返回String常用APIStringString類概述、不可變?cè)鞸tring創(chuàng)建對(duì)象的2種方式String常見面試題String常用方法-字符串內(nèi)容比較String常用方法-截取、分割、遍歷、替換、等String案例操作ArrayListStringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型ArrayList集合案例:元素搜索數(shù)組的特點(diǎn)數(shù)組定義完成并啟動(dòng)后,類型確定、長(zhǎng)度固定。

問題:在個(gè)數(shù)不能確定,且要進(jìn)行增刪數(shù)據(jù)操作的時(shí)候,數(shù)組是不太合適的。012集合是與數(shù)組類似,也是一種容器,用于裝數(shù)據(jù)的。集合的特點(diǎn)集合的大小不固定,啟動(dòng)后可以動(dòng)態(tài)變化,類型也可以選擇不固定。…集合非常適合做元素個(gè)數(shù)不確定,且要進(jìn)行增刪操作的業(yè)務(wù)場(chǎng)景。集合還提供了許多豐富、好用的功能,而數(shù)組的功能很單一。集合的應(yīng)用場(chǎng)景1、數(shù)組和集合的元素存儲(chǔ)的個(gè)數(shù)問題?數(shù)組定義后類型確定,長(zhǎng)度固定集合類型可以不固定,大小是可變的。2、數(shù)組和集合適合的場(chǎng)景數(shù)組適合做數(shù)據(jù)個(gè)數(shù)和類型確定的場(chǎng)景集合適合做數(shù)據(jù)個(gè)數(shù)不確定,且要做增刪元素的場(chǎng)景StringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型的對(duì)象ArrayList集合案例:元素搜索ArrayList集合ArrayList是集合中的一種,它支持索引。(暫時(shí)先學(xué)習(xí)這個(gè),后期課程會(huì)學(xué)習(xí)整個(gè)集合體系)ArrayList集合的對(duì)象的創(chuàng)建構(gòu)造器說明publicArrayList?()創(chuàng)建一個(gè)空的集合對(duì)象方法名說明publicbooleanadd(Ee)將指定的元素追加到此集合的末尾publicvoidadd(intindex,Eelement)在此集合中的指定位置插入指定的元素ArrayList集合的添加元素的方法1、ArrayList類如何創(chuàng)建集合對(duì)象的,如何添加元素?publicArrayList?()publicbooleanadd(Ee)publicvoidadd(intindex,Eelement)StringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用API、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型的對(duì)象ArrayList集合案例:元素搜索泛型概述ArrayList<E>:其實(shí)就是一個(gè)泛型類,可以在編譯階段約束集合對(duì)象只能操作某種數(shù)據(jù)類型。

舉例:ArrayList<String>:此集合只能操作字符串類型的元素。ArrayList<Integer>:此集合只能操作整數(shù)類型的元素。注意:泛型只能支持引用數(shù)據(jù)類型,不支持基本數(shù)據(jù)類型。1、怎么去統(tǒng)一ArrayList集合操作的元素類型,泛型需要注意什么?使用泛型:<數(shù)據(jù)類型>創(chuàng)建集合對(duì)象都應(yīng)該使用泛型。ArrayList<String>list1=newArrayList();泛型只能支持引用數(shù)據(jù)類型,不支持基本數(shù)據(jù)類型。StringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型ArrayList集合案例:元素搜索ArrayList集合常用方法方法名稱說明publicEget(intindex)返回指定索引處的元素publicintsize()返回集合中的元素的個(gè)數(shù)publicEremove(intindex)刪除指定索引處的元素,返回被刪除的元素publicbooleanremove(Objecto)刪除指定的元素,返回刪除是否成功publicEset(intindex,Eelement)修改指定索引處的元素,返回被修改的元素StringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型ArrayList集合案例:元素搜索遍歷并刪除元素值需求:某個(gè)班級(jí)的考試在系統(tǒng)上進(jìn)行,成績(jī)大致為:98,77,66,89,79,50,100現(xiàn)在需要先把成績(jī)低于80分以下的數(shù)據(jù)去掉。分析:定義ArrayList集合存儲(chǔ)多名學(xué)員的成績(jī)。遍歷集合每個(gè)元素,如果元素值低于80分,去掉它。1、

從集合中遍歷元素,并篩選出元素刪除它,應(yīng)該怎么解決?從集合后面遍歷然后刪除,可以避免漏掉元素。StringArrayList集合概述ArrayList集合快速入門ArrayList對(duì)于泛型的支持ArrayList常用方法、遍歷ArrayList集合案例:遍歷并刪除元素ArrayList集合案例:存儲(chǔ)自定義類型的對(duì)象ArrayList集合案例:元素搜索影片信息在程序中的表示需求某影院系統(tǒng)需要在后臺(tái)存儲(chǔ)上述三部電影,然后依次展示出來。分析:定義一個(gè)電影類,定義一個(gè)集合存儲(chǔ)電影對(duì)象。:創(chuàng)建3個(gè)電影對(duì)象,封裝相關(guān)數(shù)據(jù),把3個(gè)對(duì)象存入到集合中去。:遍歷集合中的3個(gè)對(duì)象,輸出相關(guān)信息。publicclassSystemDemo{

publicstaticvoidmain(String[]args){

ArrayList<Movie>movies=newArrayList<>();

movies.add(newMovie(“《肖生克的救贖》”,9.7

,“羅賓斯”));

movies.add(newMovie(“《霸王別姬》”,9.6

,“張國榮、張豐毅”));

movies.add(newMovie(“《阿甘正傳》”,9.5

,“湯姆.漢克斯"));

System.out.p

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論