




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java程序設計基礎第五章String及常用類的使用預習檢查請老師根據上節(jié)課布置的預習內容進行提問本章目標重難點提示重點:掌握String類的創(chuàng)建方式重點:掌握String類的常用方法重點:理解String類的特性重點:掌握StringBuffer類的創(chuàng)建和常用方法重點:掌握正則表達式的使用重點:掌握SimpleDateFormat類的基本使用掌握JavaAPI文檔的使用理解String、StringBuffer和StringBuilder類的區(qū)別掌握DecimalFormat類的基本使用掌握JDK8中的新日期時間類型工具的基本使用本章任務Sting類常用方法的基本使用統(tǒng)計子串出現的次數字符串緩存的使用實現英文單詞的翻轉JDK8新日期時間類型使用NumberFormat的基本使用7.1JavaAPI及API文檔簡介Java
給程序員提供了
JavaAPI(ApplicationProgrammingInterface,應用程序編程接口)文檔,供
Java
程序員隨時查閱。API
文檔描述了類庫中的類及其方法的輸入、輸出和功能,程序員依據文檔直接調用,無須關注實現細節(jié)。在使用
JavaAPI
文檔時,需要注意
API
文檔的版本號要和
JDK
的版本號一致,否則可能出現文檔與實際使用的類庫不一致的情況。7.1JavaAPI及API文檔API
文檔7.2String類String類特性String類表示字符串,Java程序中的所有字符串都作為此類的對象。String類不是基本數據類型,它是類,屬于引用類型。所有引用類型對象的初始化默認值都是null,所以String類對象的初始化默認值也是null。String是一種特殊的對象:
(1)String字符串是常量,字符串的值在創(chuàng)建之后不能更改。
(2)String類是final修飾的最終類,因此不能被繼承。7.2String類String對象創(chuàng)建方式一: Stringname="小桃子"; String
name
=
null;方式二: Stringstr=newString(); Stringstr=newString(參數列表);云課實驗:
【練一練】String類的基本使用7.2String類常用方法-
返回字符串新對象的方法publicStringconcat(Stringstr):將指定的字符串str連接到此字符串的最后。
用法:"hello".concat("World")-->調用方法后返回新的字符串對象值為「helloWorld」。publicStringtoUpperCase():將此String中的所有字符都轉換為大寫。
用法:"hello".toUpperCase()-->調用方法后返回新的字符串對象值為「HELLO」。publicStringtoLowerCase():將此String中的所有字符都轉換為小寫。
用法:"World".toLowerCase()-->調用方法后返回新的字符串對象值為「world」。
云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
返回字符串新對象的方法publicStringreplace(charoldChar,charnewChar):返回一個新的字符串,通過用字符newChar替換此字符串中出現的所有字符oldChar得到的。
用法:"helloworld".replace('l','k')-->調用方法后返回新的字符串對象值為「hekkoworkd」。public
Sting
replace(CharSequence
target,CharSequence
replacement):返回一個新的字符串,通過用字符串replacement替換此字符串中出現的所有字符串target得到的。
用法:"helloworlld".replace("ll","hi")-->調用方法后返回新的字符串對象值為「hehioworhid」。??注意:String類方法中的索引都是從0開始編號的。云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
返回字符串新對象的方法publicStringsubstring(intbeginIndex):返回一個從beginIndex開始到結尾的新的子字符串。
用法:"helloworld".substring(2)-->調用方法后返回新的字符串對象值為「lloworld」。publicStringsubstring(intbeginIndex,intendIndex):返回一個從beginIndex開始到endIndex結尾(不含endIndex所指字符)的新的子字符串。
用法:"helloworld".substring(2,9)-->調用方法后返回新的字符串對象值為「llowor」。publicStringtrim():返回新的字符串,去掉原字符串中前后的空格。
用法:"
helloworld
".trim()-->調用方法后返回新的字符串對象值為「helloworld」。
??注意:字符串中間的空格該方法是無法去掉的。云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串查找方法publicbooleanstartsWith(Stringprefix):判斷此字符串是否以prefix指定的前綴開始。
用法:"helloworld".startsWith("h")-->調用方法后返回「true」。publicbooleanendsWith(Stringsuffix):判斷此字符串是否以suffix指定的后綴結束。
用法:"helloworld".endsWith("h")-->調用方法后返回「false」。publicbooleancontains(CharSequences):當前字符串包含指定的字符值序列時,返回true。
用法:"helloworld".contains("h")-->調用方法后返回「true」。
云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串查找方法publicintindexOf(intch):返回此字符串中指定字符第一次出現的索引。publicintindexOf(intch,intfromIndex):返回此字符串中指定字符第一次出現的索引,從指定的索引fromIndex處開始搜索。publicintindexOf(Stringstr):返回指定子字符串str在此字符串中第一次出現處的索引。publicintindexOf(Stringstr,intfromIndex):返回指定子字符串str在此字符串中第一次出現處的索引,從指定的索引fromIndex處開始搜索。
用法:
"helloworld".indexOf('l')-->調用方法后返回「2」。
"helloworld".indexOf('l',4)-->調用方法后返回「9」。
"helloworld".indexOf("ll")-->調用方法后返回「2」。
"helloworld".indexOf("ll",4)-->調用方法后返回「-1」。??注意:使用indexOf進行查找,當沒有找到指定的字符或字符串時,返回的索引為-1。云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串查找方法publicintlastIndexOf(intch):返回此字符串中指定字符最后一次出現的索引。publicintlastIndexOf(intch,intfromIndex):返回此字符串中指定字符最后一次出現的索引,從指定的索引fromIndex處開始搜索。publicintlastIndexOf(Stringstr):返回指定子字符串str在此字符串中最后一次出現處的索引。publicintlastIndexOf(Stringstr,intfromIndex):返回指定子字符串str在此字符串中最后一次出現處的索引,從指定的索引fromIndex處開始搜索。
用法:
"helloworld".lastIndexOf('l')-->調用方法后返回「9」。
"helloworld".lastIndexOf('l',4)-->調用方法后返回「3」。
"helloworld".lastIndexOf("ll")-->調用方法后返回「2」。
"helloworld".lastIndexOf("ll",4)-->調用方法后返回「2」。
云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串比較方法publicbooleanequals(ObjectanObject):當參數anObject不為null時,進行String對象字符串值的比較。
用法:"hello".equals("hello")-->調用方法后返回「true」。
??注意: 1.當參數anObject為null時,不作值比較操作,直接返回false。 2.理解==和equals方法的區(qū)別,對于字符串而言: ==是在比較字符串對象是否指向同一個地址空間;
而equals()
方法是在比較字符串值是否相等。
云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串比較方法publicbooleanequalsIgnoreCase(Stringanother):將此字符串與另一個字符串another值比較,比較時忽略內容的大小寫。
用法:"hello".equalsIgnoreCase("Hello")-->調用方法后返回「true」。publicintcompareTo(StringanotherString):按字典順序比較兩個字符串。
用法:"hello".compareTo("hello")-->調用方法后返回「0」。
云課實驗:
【練一練】String類常用方法的基本使用7.2String類常用方法-
字符串其他方法publiccharcharAt(intindex):返回index指定的索引處的字符。
用法:"hello".charAt(1)-->調用方法后返回「e」。publicintlength():返回此字符串的長度。
用法:"hello".length()-->調用方法后返回「5」。
??注意:這里需要和獲取數組長度區(qū)別開,獲取數組長度是通過數組名.length獲取的。publicstaticStringvalueOf(基本數據類型參數):返回基本數據類型參數的字符串表示形式。
用法:String.valueOf(10)-->調用方法后返回「10」,輸出的10是字符串而不再是整型數值。
云課實驗:
【練一練】String類常用方法的基本使用云課挑戰(zhàn)統(tǒng)計子串出現的次數完成7.2小節(jié)下【試一試】統(tǒng)計子串出現的次數。問題解答學生共性問題解答7.3
StringBuffer與StringBuilder
字符串緩存的介紹字符串的值在創(chuàng)建之后不能更改。我們平時“改變”字符串值的方式,其實是先產生新的字符串,然后將原引用指向新的字符串,這樣看起來就像改變了字符串一樣。顯然,如果需要頻繁修改字符串的值,使用
String就顯得低效了。因此我們需要引申出“字符串緩存”進行字符串處理。所謂緩存,就在一個臨時空間,可以將需要頻繁處理的數據暫存在該空間中,這個空間也可以叫做緩沖區(qū)。JavaAPI中提供了String緩沖區(qū),就是StringBuffer和StringBuilder類來進行字符串緩存處理,解決字符串頻繁修改所帶來的問題。7.3
StringBuffer與StringBuilder
StringBuffer的創(chuàng)建常用的構造方法:public
StringBuffer():構造一個空白的字符串緩沖區(qū),其初始容量為16個字符。public
StringBuffer(String
str):構造一個字符串緩沖區(qū),并將其內容初始化為指定的字符串內容。
用法: StringBufferbuffer1=newStringBuffer(); StringBufferbuffer2=newStringBuffer("小桃子");云課實驗:
【練一練】字符串緩存的基本使用7.3
StringBuffer與StringBuilder
StringBuffer常用方法public
StringBuffer
append(各種數據類型):進行數據追加操作,可以追加各種類型的數據,返回當前調用者StringBuffer對象信息。
用法:buffer1.append(true)-->調用方法后,打印buffer1對象,輸出「true」。??注意:append追加的數據,一定是放在當前字符串緩沖區(qū)中已存在數據的最后。public
StringBuffer
insert(int
offset,各種數據類型):添加數據,可以指定位置來進行各種類型數據的添加,返回當前調用者StringBuffer對象信息。
用法:buffer1.insert(2,123.36)-->調用方法后,打印buffer1對象,輸出「tr123.36ue」。??注意:insert方法添加各種類型數據,必須指定需要插入數據的位置。云課實驗:
【練一練】字符串緩存的基本使用7.3
StringBuffer與StringBuilder
StringBuffer常用方法public
StringBuffer
delete(int
start,int
end):清除緩存中的數據,返回當前調用者StringBuffer對象信息。
用法:buffer1.delete(2,8)-->調用方法后,打印buffer1對象,輸出「true」。??注意:delete方法清除指定位置的數據,start是開始索引(包含在內),end是結束索引(不包含在內)。public
StringBuffer
reverse():使此字符序列替換為序列的相反方向。
用法:buffer1.reverse()-->調用方法后,打印buffer1對象,輸出「eurt」。云課實驗:
【練一練】字符串緩存的基本使用7.3
StringBuffer與StringBuilder
String、StringBuffer和StringBuilder區(qū)別String、StringBuffer和StringBuilder類都是在對字符串進行操作,但StringBuffer和StringBuilder類的對象能夠被多次的修改,并且不產生新的未使用對象。區(qū)別在于:進行簡單字符串處理,建議使用String。頻繁進行字符串連接操作,但數據量不大的情況下,建議使用StringBuffer。在數據量比較大的情況下,進行字符串操作,建議使用StringBuilder。StringBuffer類線程安全的,StringBuilder類非線程安全的。云課實驗:
【練一練】字符串緩存的基本使用云課挑戰(zhàn)實現英文單詞的翻轉完成7.3小節(jié)下【試一試】實現英文單詞的翻轉。問題解答學生共性問題解答7.4正則表達式Java自帶正則表達式正則表達式regularexpression,簡稱regex。由一些字母、字符以及特殊字符組成的字符串,通過該字符串去匹配一些子串,或是搜索子串,或是替換子串,來完成一系列的操作。JDKAPI中java.util.regex包,提供了Java自帶的正則表達式的接口、類和異常類。接口:MatchResult類:Pattern和Matcher異常:PatternSyntaxException云課實驗:正則表達式的使用7.4正則表達式Java自帶正則表達式正則中的保留字符:云課實驗:正則表達式的使用保留字符說明()把圓括號內外的表達式區(qū)分開。[]方括號內的字符之間是“或”的關系。{}花括號內填寫的數字,表示表達式匹配的次數。|對豎線前后字符做“或”運算。-橫線前后的字符,表示兩個字符之間的所有連續(xù)字符。\反斜杠對保留字符做轉義,保留自身符號。7.4正則表達式Java自帶正則表達式常用的表達式規(guī)則:云課實驗:正則表達式的使用匹配符說明[abc]包含字母a或b或c。[^abc]不包含字母a或b或c的其他字母。[a-zA-Z]包含字母a-z和A-Z范圍內的。[0-9]包含0-9數字的。.表示任意字符(除換行符\n外)。\d等價于[0-9]。\s表示任意空白符,等價于[\t\n\x0B\f\r]這些符號。\S表示除空白符以外的所有字符。\w等價于[a-zA-Z_0-9]。7.4正則表達式Java自帶正則表達式限定符說明:云課實驗:正則表達式的使用符號說明?是否出現。*出現0或多次。+出現1或多次。{n}n表示出現的次數,表達式出現n次。{n,}表達式至少出現n次。{n,m}表達式至少出現n次,最多出現m次。7.4正則表達式Java自帶正則表達式Pattern類沒有提供構造方法,需要通過該類中的靜態(tài)方法獲取Pattern類的實例對象。publicstaticPatterncompile(Stringregex)
將給定的正則表達式編譯為指定模式。publicstaticPatterncompile(Stringregex,intflags)
將給定的正則表達式編譯為具有給定標志的模式。flags是Pattern類中給出的一些常量值。獲取
Matcher類實例方法:publicMatchermatcher(CharSequenceinput)
該方法不是靜態(tài)方法,必須先獲取到Pattern實例后,才能調用。云課實驗:正則表達式的使用7.4正則表達式Java自帶正則表達式Matcher類中常用的匹配方法:云課實驗:正則表達式的使用方法說明publicbooleanmatches()提供的正則表達式完成匹配時返回true,否則返回false。publicbooleanfind()提供的正則表達式只要有部分匹配就返回true。publicStringgroup()提取匹配的子串信息。publicintstart()返回匹配子串的開始索引。publicintend()返回匹配子串的結束索引。7.4正則表達式字符串的匹配、查找、替換和分割正則表達式是匹配字符串的一類邏輯式,通過代表特定含義的保留字符,能夠描述符合規(guī)則的一組字符串,在字符串中運用正則表達式常用于字符串的分割與匹配校驗。String類中提供需要使用正則表達式的方法:云課實驗:正則表達式的使用方法說明publicbooleanmatches(Stringregex)根據regex進行匹配,能匹配返回true,否則返回false。publicStringreplaceFirst(Stringregex,Stringreplacement)根據regex進行查找,找到后進行替換第一個匹配的字符串。publicStringreplaceAll(Stringregex,Stringreplacement)根據regex進行查找,找到后進行替換全部匹配的字符串。publicString[]split(Stringregex)根據regex分割字符串,將分割后的數據存儲在String數組中。7.4正則表達式字符串的匹配、查找、替換和分割效率較高的字符串分割處理,可以通過StringTikenizer類。StringTokenizer類中空格是默認分割符: StringTokenizerst=newStringTokenizer("thisisastring");如果是其他的分割符,則需要指定: StringTokenizerst=newStringTokenizer("this|is|a|string","|");
StringTokenizerst=newStringTokenizer("this,is,a,string",",");通過類中的hasMoreTokens()方法進行判斷是否還有數據,nextToken()方法進行數據信息提取。云課實驗:正則表達式的使用云課挑戰(zhàn)實現字符串分割完成7.4小節(jié)下【試一試】實現字符串分割編寫Java應用程序,實現如下效果即可。問題解答學生共性問題解答7.5其他工具類日期工具類最早出現在Java中的日期類工具是Date類。構造方法:public
Date()
獲取當前系統(tǒng)時間,默認情況下是世界標準時間。 Dated=newDate();??注意:使用Date類需要通過importjava.util.Date導入,才可以使用。Date類中有好多的方法已過時,使用前一定要仔細查看API。云課實驗:
【練一練】DateFormate的基本使用7.5其他工具類DateFormat日期格式化工具DateFormat類是一個抽象類,提供了一系列的方法來獲取DateFormat類的對象實例。DateFormat.getDateInstance()DateFormat.getDateInstance(intdateStyle)DateFormat.getTimeInstance()DateFormat.getTimeInstance(inttimeStyle)DateFormat.getDateTimeInstance()DateFormat.getDateTimeInstance(intdateStyle,inttimeStyle)格式化方法: publicfinalStringformat(Datedate):將日期格式化為日期/時間字符串。云課實驗:
【練一練】DateFormate的基本使用7.5其他工具類DateFormat日期格式化工具提供樣式如下:常量值樣式說明DateFormat.FULL全型,2021年8月11日星期三上午05時50分24秒UTCDateFormat.LONG長型,2021年8月11日上午05時50分24秒DateFormat.MEDIUM中型,2021-8-115:50:24DateFormat.SHORT短型,21-8-11上午5:50DateFormat.DEFAULT默認型,2021-8-115:50:24云課實驗:
【練一練】DateFormate的基本使用7.5其他工具類SimpleDateFormat日期格式化工具類SimpleDateFormat簡化了日期和時間的格式化。常用構造方法:
public
SimpleDateFormat(String
pattern)
用法: newSimplateDateFormat("yyyy-MM-dd").format(newDate());云課實驗:
【練一練】DateFormate的基本使用7.5其他工具類SimpleDateFormat日期格式化工具類模板樣式??云課實驗:
【練一練】DateFormate的基本使用7.5其他工具類SimpleDateFormat日期格式化工具類日期模板示例:云課實驗:
【練一練】DateFormate的基本使用問題解答學生共性問題解答7.5其他工具類本地日期時間工具類全新的本地日期時間類型,不單單是一種類型,而是一個家族。分別有LocalDate、LocalTime和LocalDateTime類。它們都是在java.time包中,需要導入才能使用。本地日期時間類型工具中常用的3個類都是被final修飾的,不能被繼承。類中沒有提供相應的構造方法,需要通過now()和of()方法獲取相應的實例。
云課實驗:
【練一練】JDK8新日期時間類型使用7.5其他工具類本地日期工具類-
LocalDate獲取本地日期類型對象實例,主要有兩種方式:publicstaticLocalDatenow():從默認的系統(tǒng)時間中獲取當前日期。
用法:LocalDate.now()-->返回當前系統(tǒng)日期,顯示格式為2021-08-13publicstaticLocalDateof(intyear,intmonth,intdayOfMonth):從指定年、月和日獲取LocalDate實例。提供的年和日月必須有效,否則將引發(fā)異常。
用法:LocalDate.of(2020,10,3)-->返回指定年月日的日期對象,顯示格式為2020-10-03
云課實驗:
【練一練】JDK8新日期時間類型使用7.5其他工具類本地日期工具類–
LocalDate常用方法
方法名說明getYear()獲取該日期的年份,返回int類型數據,例如:2021getMonth()獲取該日期的月份(英文),返回Month對象,例如:AUGUSTgetMonthValue()獲取該日期的月份(1-12),返回int類型數據,例如:8getDayOfMonth()獲取該日期的日數(1-31),返回int類型數據,例如:13getDayOfWeek()獲取該日期的星期幾(英文),返回DayOfWeek對象,例如:FRIDAYlengthOfMonth()獲取該日期的所在月的天數,返回int類型數據,例如:31lengthOfYear()獲取該日期的所在年的天數,返回int類型數據,例如:365isLeapYear()判斷該日期的年份是否為閏年,返回boolean類型數據。云課實驗:
【練一練】JDK8新日期時間類型使用7.5其他工具類本地日期工具類–
LocalTimeLocalTime用來操作時分秒,獲取本地時間對象實例,和本地日期類是一樣的,也是使用now()
和of()
方法來進行實例獲取的。
云課實驗:
【練一練】JDK8新日期時間類型使用方法名說明getHour()獲取該時間的小時數,返回int類型數據,例如:5getMinute()獲取該時間的分鐘數,返回int類型數據,例如:20getSecond()獲取該時間的秒數,返回int類型數據,例如:48getNano()獲取該時間的納秒數,返回int類型數據,例如:4690000007.5其他工具類本地日期工具類–
LocalDateTimeLocalDateTime是本地日期時間類型工具,同時可以處理年月日和小時分鐘秒,該類中的方法是LocalDate和LocalTime的合集。??注意:LocalDateTime類中沒有提供lengthOfYear、lengthOfMonth和isLeapYear3個方法。LocalDateTime本地日期時間類型,默認的格式是yyyy-MM-ddTHH:mm:ss.SSS。
云課實驗:
【練一練】JDK8新日期時間類型使用7.5其他工具類本地日期時間和字符串之間的互轉在LocalDate、LocalTime和LocalDateTime中都有提供了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Ubuntu Linux 22.04系統(tǒng)管理與服務器配置 課件全套 項目1-9 安裝與配置Ubuntu操作系統(tǒng)-配置與管理Web服務器
- 高溫施工期間安全防護方案
- 輸電線路通信設備安裝方案
- 混凝土強度檢驗與控制方案
- 預制構件堆放與管理方案
- 水痘預防措施課件
- 藥物的拮抗作用實驗動物實驗75課件
- 水電氣基本知識培訓課件
- 2025版活動策劃公司場地租賃及服務提供合同范本
- 2025版工業(yè)倉儲場地租賃個人合同范本
- 股東決策協(xié)議書模板
- NB/T 11525-2024氣動、電動調度單軌吊車技術條件
- 2025年全國特種設備觀光車N1證理論考試筆試試題(含答案)
- 1.1什么是新媒體 課件(共17張)-《新媒體營銷》同步教學(北京出版社)
- 林地托管合同協(xié)議
- 2020-2025年中國智慧倉儲行業(yè)市場調查研究及投資戰(zhàn)略咨詢報告
- 課題申報書:人工智能背景下高職藝術設計專業(yè)人才培養(yǎng)模式改革與創(chuàng)新研究
- 教育行業(yè)服務意識培訓
- 韋尼克腦病治療
- 質量異常應對策略與培訓實踐
- 秘書工作中的職業(yè)發(fā)展規(guī)劃研究論文
評論
0/150
提交評論