Java2實(shí)用教程5字符串_第1頁
Java2實(shí)用教程5字符串_第2頁
Java2實(shí)用教程5字符串_第3頁
Java2實(shí)用教程5字符串_第4頁
Java2實(shí)用教程5字符串_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第章字符串5.1 字符串 character strings5.2 字符串的常用方法 common methods 5.3 字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化5.4 對(duì)象的字符串表示5.5 StringTokenizer類5.6字符串與字符、字節(jié)數(shù)組5.7 StringBuffer類5.8 正則表達(dá)式 Regular Expressions15.1 字符串java.lang.String類,字符串變量是對(duì)象。1.字符串常量 “你好”,“1234.987”,“weqweo”。2.創(chuàng)建字符串 使用String類的構(gòu)造方法,例如: String s=new String(we are students);2

2、5.2 字符串的常用方法(1)public int length()length()方法可以獲取一個(gè)字符串的長度 ,如:String tom= 我們是學(xué)生;tom.length()的值5。3public boolean equals(String s) 比較當(dāng)前字符串對(duì)象的實(shí)體是否與參數(shù)指定的字符串s的實(shí)體相同.String tom=new String( we are students);String boy=new String( We are students);String jerry= new String(we are students);tom.equals(boy)的值是fal

3、se,tom.equals(jerry)的值是 true。 4public boolean startsWith(String s)public boolean endsWith(String s) 字符串對(duì)象調(diào)用startsWith(String s)方法,判斷當(dāng)前字符串對(duì)象的前綴是否是參數(shù)指定的字符串s .字符串對(duì)象調(diào)用endsWith(String s) 方法,判斷當(dāng)前字符串的后綴是否是字符串s .5public boolean regionMatches(int firstStart, String other, int ortherStart,int length) 從當(dāng)前字符串參數(shù)

4、firstStart指定的位置處開始,取長度為length的一個(gè)子串,將這個(gè)子串和參數(shù)other指定的一個(gè)子串進(jìn)行比較。其中,other指定的子串是從參數(shù)othertStart指定的位置開始,長度為length的一個(gè)子串。6public int compareTo(String s) 字符串對(duì)象按字典序與參數(shù)s指定的字符串比較大小。如果當(dāng)前字符串與s相同,該方法返回值0;如果當(dāng)前字符串大于s,該方法返回正值;如果小于s,該方法返回負(fù)值。 7public int indexOf (String s) indexOf (String s)從當(dāng)前字符串的頭開始檢索字符串s,并返回首次出現(xiàn)s的位置。如

5、果沒有檢索到字符串s,該方法返回的值是-1。indexOf(String s ,int startpoint)方法從當(dāng)前字符串的startpoint位置處開始檢索字符串s,并返回首次出現(xiàn)s的位置。lastIndexOf (String s)方法從當(dāng)前字符串的頭開始檢索字符串s,并返回最后出現(xiàn)s的位置。8public String substring(int startpoint) 字符串對(duì)象調(diào)用該方法獲得一個(gè)當(dāng)前字符串的子串該子串是從當(dāng)前字符串的startpoint處截取到字符串的末尾所得到的字符串。字符串對(duì)象調(diào)用substring(int start ,int end)方法獲得一個(gè)當(dāng)前字符串

6、的子串,該子串是從當(dāng)前字符串的start處截取到end處所得到的字符串,但不包括end處所對(duì)應(yīng)的字符。 9public String replaceAll(String oldString ,String newString) 字符串對(duì)象s調(diào)用該方法可以獲得一個(gè)串對(duì)象,這個(gè)串對(duì)象是通過用參數(shù)newString指定的字符串替換s中由oldString指定的所有字符串而得到的字符串。10public String trim() 一個(gè)字符串s通過調(diào)用方法trim()得到一個(gè)字符串對(duì)象,該字符串對(duì)象是s去掉前后空格后的字符串。 115.3 字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化 使用java.lang包中的Byt

7、e、Short、Integer 、 Long、Float、Double類調(diào)相應(yīng)的類方法:public static byte parseByte(String s) throws NumberFormatExceptionpublic static short parseShort(String s) throws NumberFormatExceptionpublic static short parseInt(String s) throws NumberFormatExceptionpublic static long parseLong(String s) throws NumberF

8、ormatExceptionpublic static float parseFloat(String s) throws NumberFormatExceptionpublic static double parseDouble(String s) throws NumberFormatException 可以將“數(shù)字”格式的字符串,轉(zhuǎn)化為相應(yīng)的基本數(shù)據(jù)類型。125.4 對(duì)象的字符串表示 在子類的講述中我們講過,所有的類都默認(rèn)是java.lang包中Object類的子類或間接子類。Object類有一個(gè)public 方法toString(),一個(gè)對(duì)象通過調(diào)用該方法可以獲得該對(duì)象的字符串表示。1

9、35.5 StringTokenizer類 當(dāng)我們分析一個(gè)字符串并將字符串分解成可被獨(dú)立使用的單詞時(shí),可以使用java.util包中的StringTokenizer類,該類有兩個(gè)常用的構(gòu)造方法: StringTokenizer(String s) 為字符串s構(gòu)造一個(gè)分析器。使用默認(rèn)的分隔符集合,即空格符(若干個(gè)空格被看做一個(gè)空格)、換行符、回車符、Tab符、進(jìn)紙符。StringTokenizer(String s, String delim) 為字符串s構(gòu)造一個(gè)分析器。參數(shù)dilim中的字符被作為分隔符。14把一個(gè)StringTokenizer對(duì)象稱作一個(gè)字符串分析器。一個(gè)分析器可以使用nex

10、tToken()方法逐個(gè)獲取字符串中的語言符號(hào)(單詞)每當(dāng)調(diào)用nextToken()時(shí),都將在字符串中獲得下一個(gè)語言符號(hào),每當(dāng)獲取到一個(gè)語言符號(hào),字符串分析器中的負(fù)責(zé)計(jì)數(shù)的變量的值就自動(dòng)減一,該計(jì)數(shù)變量的初始值等于字符串中的單詞數(shù)目 155.6 字符串與字符、字節(jié)數(shù)組 public void getChars(int start,int end,char c,int offset ) 字符串調(diào)用getChars方法將當(dāng)前字符串中的一部分字符拷貝到參數(shù)c指定的數(shù)組中。將字符串中從位置start到end-1位置上的字符拷貝的數(shù)組c中,并從數(shù)組c的offset處開始存放這些字符。需要注意的是,必須保

11、證數(shù)組c能容納下要被拷貝的字符。public char toCharArray() 字符串對(duì)象調(diào)用該方法可以初始化一個(gè)字符數(shù)組,該數(shù)組的長度與字符串的長度相等,并將字符串對(duì)象的全部字符拷貝到該數(shù)組中。16String(byte,int offset,int length) 該構(gòu)造方法使用平臺(tái)默認(rèn)的字符編碼,用指定的字節(jié)數(shù)組的一部分,即從數(shù)組起始位置offset開始取length個(gè)字節(jié)構(gòu)造一個(gè)字符串對(duì)象。public byte getBytes() 使用平臺(tái)默認(rèn)的字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個(gè)字節(jié)數(shù)組。17 “hello”與new String(“hello”)的區(qū)別以下兩種方式都定義了兩個(gè)內(nèi)

12、容為“hello”的字符串。方式一:String s1= hello,s2=hello; 方式二:String s1=new String(hello),s2=new String(hello);在第一種方式中,“hello”為直接數(shù),Java虛擬機(jī)把它作為編譯時(shí)常量,在內(nèi)存中只會(huì)為它分配一次內(nèi)存,然后就可以重復(fù)使用,因此s1=s2的比較結(jié)果為true。在第二種方式中,每個(gè)new語句都會(huì)新建一個(gè)String對(duì)象,因此s1=s2的比較結(jié)果為false。18public class ThreeStrs public String s1;public String s2;public String

13、s3 = hello;void init1() s1 = hello;void init2() s2 = hello;public static void main(String args) ThreeStrs t = new ThreeStrs();t.init1();t.init2();System.out.println(t.s1 = t.s2); / 打印trueSystem.out.println(t.s1 = t.s3); / 打印trueThreeStrs tt = new ThreeStrs();tt.init1();tt.init2();System.out.println(

14、t.s1 = tt.s1); / 打印true195.7 StringBuffer類 String類創(chuàng)建的字符串對(duì)象是不可修改的String字符串不能修改、刪除或替換字符串中的某個(gè)字符,即String對(duì)象一旦創(chuàng)建,那么實(shí)體是不可以再發(fā)生變化的.StringBuffer類能創(chuàng)建可修改的字符串序列,也就是說,該類的對(duì)象的實(shí)體的內(nèi)存空間可以自動(dòng)的改變大小,便于存放一個(gè)可變的字符序列。 205.8正則表達(dá)式regular expressions 一個(gè)正則表達(dá)式是含有一些具有特殊意義字符的字符串,這些特殊字符稱作正則表達(dá)式中的元字符metacharacter 。比如,“dhello”中的d就是有特殊意義

15、的元字符,代表0到9中的任何一個(gè)。字符串“9hello”和“1hello”都是和正則表達(dá)式:“dhello”匹配的字符串之一。字符串對(duì)象調(diào)用 public boolean matches(String regex) 方法可以判斷當(dāng)前字符串對(duì)象是否和參數(shù)regex指的正則表達(dá)式匹配。21元字符 MetacharactersSee Java Documentation22Some PatternsAn+a Ana, Annna Aa, ANnaA2,7AA, AAA, , AAAAAAA AAAAAAAAdddd d4A|B(w+)_(w+)(w+).org (d-)?(d3-)?d3-d4 23

16、public class Example4_9 public static void main(String args) / 把字符串中的“aaa”全部替換為“z”/ 打印zbzczSystem.out.println(aaabaaacaaa.replaceAll(a3, z);/ 把字符串中的“aaa”、“aa”或者“a”全部替換為“*”/ 打印*b*c*System.out.println(aaabaaca.replaceAll(a1,3, *);/ 把字符串中的數(shù)字全部替換為“z”/ 打印zzzazzbzzccSystem.out.println(123a44b35cc.replaceA

17、ll(d, z);/ 把字符串中的非數(shù)字全部替換為“z”/ 打印1234000435000System.out.println(1234abc435def.replaceAll(D, 0);/ 把字符串中的“.”全部替換為“”/ 打印comabcdollappDollSystem.out.println(com.abc.dollapp.Doll.replaceAll(., );/ 把字符串中的“a.b”全部替換為“-”,/ “a.b”表示長度為3的字符串,以“a”開頭,以“b”結(jié)尾/ 打印-hello-allSystem.out.println(azbhelloahball.replaceAll(a.b, -);/ 把字符串中的所有詞字符替換為“#”/ 正則表達(dá)式“a-zA-Z_0-9”等價(jià)于是“w”/ 打印#.#.#.#.#.#.#System.out.println(a.b.c.replaceAll(a-zA-Z_0-9, #);/ 用正則表達(dá)式判斷一個(gè)字符串是否是一個(gè)正確的E-mail 地址格式String rege

溫馨提示

  • 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)論