ch08 - 字符串和文本IO_第1頁(yè)
ch08 - 字符串和文本IO_第2頁(yè)
ch08 - 字符串和文本IO_第3頁(yè)
ch08 - 字符串和文本IO_第4頁(yè)
ch08 - 字符串和文本IO_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、YANGLINBNUITCJava程序設(shè)計(jì)第8章 字符串和文本I/O學(xué)習(xí)目標(biāo)o 掌握String類(lèi)處理固定長(zhǎng)度的字符串o 了解Character類(lèi)處理單個(gè)字符o 掌握StringBuffer類(lèi)處理可變長(zhǎng)度字符串o 使用File類(lèi)處理文件o 使用PrintWriter類(lèi)向文件寫(xiě)數(shù)據(jù)o 使用Scanner類(lèi)從文件讀數(shù)據(jù)String類(lèi)o java.lang.String表示一個(gè)固定長(zhǎng)度的字符序列。n構(gòu)造函數(shù)n長(zhǎng)度(length)n獲取字符(charAt)n連接(concat)n截取(substring)n比較(equals, equalsIgnoreCase, compareTo, startWit

2、h, endWith, regionMatch)n轉(zhuǎn)換(toLowerCase, toUpperCase, trim, replace)n查找(indexOf, lastIndexOf)n字符串和數(shù)組間轉(zhuǎn)換(getchars, toCharArray)n字符串和數(shù)字間轉(zhuǎn)換(valueOf)構(gòu)造函數(shù)o 從字面值創(chuàng)建字符串String newString = new String(stringLiteral);例如:String message = new String(Welcome to Java);o 由于字符串經(jīng)常使用,java提供了創(chuàng)建字符串的簡(jiǎn)寫(xiě)形式。String newString

3、= stringLiteral;例如:String message = Welcome to Java;字符串是不可變的o 字符串對(duì)象創(chuàng)建之后,其內(nèi)容是不可修改的。String s;s = “java”;s = “HTML”;ss1:Stringvalue = Javass2:Stringvalue = HTMLs1:Stringvalue = Java規(guī)范字符串o 由于字符串是不可變的,為了提高效率和節(jié)省內(nèi)存,如果兩個(gè)字符串由于相同的字面值創(chuàng)建的,那么java虛擬機(jī)只創(chuàng)建一個(gè)字符串對(duì)象。這樣的字符串稱(chēng)為規(guī)范字符串(canonical string)。o 可以使用字符串對(duì)象的intern方法返

4、回標(biāo)準(zhǔn)化字符串。String s = Welcome to Java;String s1 = new String(Welcome to Java);String s2 = ern(); String s3 = Welcome to Java;System.out.println(s1 = s); /falseSystem.out.println(s2 = s); /trueSystem.out.println(s3 = s); /true: StringWelcome to Java: String Welcome to Java比較字符串oequals方法用于比較兩個(gè)字符串是否

5、包含相同的內(nèi)容:n兩個(gè)字符串內(nèi)容相同,返回truen兩個(gè)字符串內(nèi)容不同,返回falseoequalsIngnoeCase忽略大小寫(xiě)比較內(nèi)容是否相同oregionMatch比較部分內(nèi)容是否相同ostartsWith判斷是否以某個(gè)字符串開(kāi)始o(jì)endsWith判斷是否以某個(gè)字符串結(jié)束ocompareTo方法用于比較兩個(gè)字符串的大小,即第一個(gè)不同字符的差值。pareTo(s2)的返回值:n當(dāng)兩個(gè)字符串相同時(shí),返回n當(dāng)s1按字典排序在s2之前,返回小于的值n當(dāng)s1按字典排序在s2之后,返回大于的值Example:TestCompare.javao 調(diào)用length()方法可以獲取字符串的長(zhǎng)度。例如:me

6、ssage.length()返回15o charAt(index)方法可以獲取指定位置的字符。index的值必須在0到s.length()-1之間。例如:message.charAt(0)返回字符W字符串長(zhǎng)度和獲取單個(gè)字符WelcometoJavamessage.charAt(0)message.charAt(14)012345678910 11 12 13 14連接字符串o concat方法用于連接兩個(gè)字符串。例如:String s3 = s1.concat(s2);o 使用加號(hào)(+)連接兩個(gè)字符串。例如:String s3 = s1 + s2;s1 + s2 + s3 等價(jià)于s1.conc

7、at(s2).concat(s3)o 連接操作返回一個(gè)新的字符串。截取子串o subString用于截取字符串的一部分,返回新字符串。npublic String substring(int beginIndex, int endIndex)返回字符串的子串。子串從beginIndex開(kāi)始,直到endIndex-1npublic String substring(int beginIndex)返回字符串的子串。子串從beginIndex開(kāi)始,直到字符串的結(jié)尾。WelcometoJava012345678910 11 12 13 14message.substring(0, 11)message

8、.substring(11)字符串轉(zhuǎn)換o toLowerCase將字符串轉(zhuǎn)換成小寫(xiě)形式o toUpperCase將字符串轉(zhuǎn)換成大寫(xiě)形式o trim刪除兩端的空格o replace字符替換Example:TestConvert.java查找字符或字符串o indexOf返回字符串中字符或字符串匹配的位置,返回-1表示未找到。Welcome to Java.indexOf(W) returns 0.Welcome to Java.indexOf(x) returns -1.Welcome to Java.indexOf(o, 5) returns 9.Welcome to Java.indexOf

9、(come) returns 3.Welcome to Java.indexOf(Java, 5) returns 11.Welcome to Java.indexOf(java, 5) returns -1.Welcome to Java.lastIndexOf(a) returns 14.字符數(shù)組和字符串間的轉(zhuǎn)換o toCharArray將字符串轉(zhuǎn)換成字符數(shù)組String s = “Java”;char charArray = s.toCharArray();o 將字符數(shù)組轉(zhuǎn)換成字符串n使用String的構(gòu)造函數(shù)new String(new char J,a,v,a);n使用valueOf

10、方法String.valueOf(new char J,a,v,a);基本數(shù)據(jù)類(lèi)型和字符串間的轉(zhuǎn)換o valueOf方法將基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換為字符串。例如String s1 = String.valueOf(1.0); /“.0”String s2 = String.valueOf(true); /“true”o 字符串轉(zhuǎn)換為基本類(lèi)型nDouble.parseDouble(str)nInteger.parseInt(str)nBoolean.parseBoolean(str)例 判斷回文o 回文是指順讀和倒讀都一樣的詞語(yǔ)。例如“mom”, “dad”, ”noon”都是回文。編寫(xiě)程序,判斷一個(gè)字

11、符串是否是回文。Example:CheckPalindrome.javaCharacter類(lèi)o Character類(lèi)的作用n將char類(lèi)型的數(shù)據(jù)封裝成對(duì)象n包含處理字符的方法和常量o 方法nisDigit方法判斷一個(gè)字符是否是數(shù)字nisLetter方法判斷一個(gè)字符是否是字母nisLetterOrDigit方法判斷一個(gè)字符是否是字母或數(shù)字nisLowerCase方法判斷一個(gè)字符是否是小寫(xiě)nisUpperCase方法判斷一個(gè)字符是否是大寫(xiě)ntoLowerCase方法將一個(gè)字符轉(zhuǎn)換成小寫(xiě)ntoUpperCase方法將一個(gè)字符轉(zhuǎn)換成大寫(xiě)例 統(tǒng)計(jì)字符串中字符的個(gè)數(shù)o 編寫(xiě)程序,統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次

12、數(shù)。假定字母不區(qū)分大小寫(xiě)。n解決方案n使用String類(lèi)的toLowerCase方法,將字符全部轉(zhuǎn)換成小寫(xiě)字母。1. 創(chuàng)建一個(gè)包含26個(gè)整數(shù)的數(shù)組,對(duì)每個(gè)字母出現(xiàn)的次數(shù)進(jìn)行計(jì)數(shù)。Example:CountEachLetter.javaStringBuffero StringBuffer用于處理可變內(nèi)容的字符串。nappend方法在字符串的結(jié)尾追加數(shù)據(jù)ninsert方法在指定位置上插入數(shù)據(jù)nreverse方法翻轉(zhuǎn)字符串nreplace方法替換字符ntoString方法返回String對(duì)象ncapacity方法返回緩沖區(qū)的容量nlength方法返回緩沖區(qū)中字符的個(gè)數(shù)nsetLength方法設(shè)置緩沖

13、區(qū)的長(zhǎng)度ncharAt方法返回指定位置的字符nsetCharAt方法設(shè)置指定位置的字符例 檢查回文o 編寫(xiě)程序,檢查回文,并忽略不是字母和數(shù)字的字符。n解決方案n創(chuàng)建一個(gè)新的StringBuffer,將字符串的字母和數(shù)字添加到StringBuffer中,返回過(guò)濾后的String對(duì)象。1. 翻轉(zhuǎn)過(guò)濾后的字符串,并與過(guò)濾后的字符串進(jìn)行比較,如果內(nèi)容相同則是回文。Example:PalindromeIgnoreNonAlphanumeric.java命令行參數(shù)o 可以從命令行向java程序傳遞參數(shù)。參數(shù)以空格分隔,如果參數(shù)本身包含空格,用雙引號(hào)括起來(lái)。格式:java 類(lèi)名 參數(shù) 參數(shù) 例如java

14、TestMain “First num” alpha 53o 命令行參數(shù)將傳遞給main方法的args參數(shù)。args是一個(gè)字符串?dāng)?shù)組,可以通過(guò)數(shù)組下標(biāo)訪問(wèn)每個(gè)參數(shù)。public static void main(String args)例 使用命令行參數(shù)o 編寫(xiě)程序,執(zhí)行整數(shù)的二元操作。程序接收個(gè)參數(shù):一個(gè)運(yùn)算符和兩個(gè)整數(shù)。例如:java Calculator 2 + 3輸出2 + 3 = 5Example:Calculator.javajava.io.File類(lèi)o File對(duì)象表示文件系統(tǒng)的文件或路徑。n獲取文件路徑名的各組成部分n測(cè)試底層文件的信息n查詢和更改文件n創(chuàng)建、刪除、重命名文件n列出目錄中的文件Example:TestFileClass.javajava.io.PrintWriter類(lèi)o PrintWriter用于以文本的形式輸出對(duì)象、字符串和基本數(shù)據(jù)類(lèi)型。PrintWriter pw = new PrintWri

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論