第6章字符串和正則表達式_第1頁
第6章字符串和正則表達式_第2頁
第6章字符串和正則表達式_第3頁
第6章字符串和正則表達式_第4頁
第6章字符串和正則表達式_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、本章導讀本章導讀1、 String類類2、 StringBuffer類類3、 StringTokenizer類類4、正則表達式與模式匹配、正則表達式與模式匹配5、元字符模式、元字符模式6、限定符模式、限定符模式7、模式的邏輯或、模式的邏輯或public class Example6_1 public static void main(String args ) String s1,s2; s1=new String(we are students); s2=new String(we are students); System.out.print(s1.equals(s2)+ ); Syste

2、m.out.println(s1=s2); String s3,s4; s3=how are you; s4=how are you; System.out.print(s3.equals(s4)+ ); System.out.println(s3=s4); System.out.print(s1.contains(s3)+ ); System.out.println(s2.contains(stu); D:javajavac Example6_1.javaD:javajava Example6_1true falsetrue truefalse truepublic class Exampl

3、e6_2 public static void main(String args ) double n,sum=0.0 ; for(int i=0;ijavac Example6_2.javaD:javajava Example6_2 62 56 58 69平均數(shù)平均數(shù):61.258658的二進制表示的二進制表示:100001110100108658的八進制表示的八進制表示:207228658的十六進制表示的十六進制表示:21d2import java.util.Date; public class Example6_3 public static void main(String args

4、) Date date=new Date(); Student stu=new Student(張三張三,89); TV tv=new TV(電視機電視機,8776); System.out.println(date.toString(); System.out.println(stu.toString(); System.out.println(tv.toString(); class Student String name; double score; Student(String name,double score) =name; this.score=score; p

5、ublic String toString() return 姓名姓名:+name+,分數(shù)分數(shù):+score; class TV String name; double price; TV(String name,double price) =name; this.price=price; D:javajavac Example6_3.javaD:javajava Example6_3Sat Nov 06 23:45:08 CST 2010姓名姓名:張三張三,分數(shù)分數(shù):89.0TV14318bbimport java.util.Scanner;public class Exa

6、mple6_4 public static void main(String args ) Scanner reader=new Scanner(System.in); String s=reader.nextLine();/*nextLine()等待輸入()等待輸入文本,文本, 該方法得到該方法得到String類型數(shù)據(jù)類型數(shù)據(jù)*/ char a=s.toCharArray(); for(int i=0;ia.length;i+) ai=(char)(aiw); String secret=new String(a); System.out.println(密文密文:+secret); for

7、(int i=0;ijavac Example6_4.javaD:javajava Example6_4您好!您好!密文密文:惟夊惟夊?原文原文:您好!您好!public class Example6_5 public static void main(String args ) byte d=YOUIHE你我他你我他.getBytes(); System.out.println(數(shù)組數(shù)組d的長度是的長度是(一一個漢字占兩個字節(jié)個漢字占兩個字節(jié)):+d.length); String s=new String(d,6,2); System.out.println(s); D:javajavac

8、 Example6_5.javaD:javajava Example6_5數(shù)組數(shù)組d的長度是的長度是(一個漢字占兩個字一個漢字占兩個字節(jié)節(jié)):12你你public class Example6_6 public static void main(String args ) StringBuffer str=new StringBuffer( ); str.setCharAt(0 ,a); str.setCharAt(1 ,b); System.out.println(str); str.insert(2, *); System.out.println(str); str.delete(6,8)

9、; System.out.println(str); 例例6_6D:javajavac Example6_6.javaD:javajava Example6_6ab23456789ab*23456789ab*236789import java.util.*; public class Example6_7 public static void main(String args ) String mess=整數(shù)部分整數(shù)部分,小數(shù)部分小數(shù)部分; Scanner reader=new Scanner(System.in); double x=reader.nextDouble(); String s

10、=String.valueOf(x); /將數(shù)字將數(shù)字x轉換為字符串轉換為字符串 StringTokenizer fenxi=new StringTokenizer(s,.); for(int i=0;fenxi.hasMoreTokens();i+) String str=fenxi.nextToken(); System.out.println(messi+:+str); D:javajavac Example6_7.javaD:javajava Example6_7678.32整數(shù)部分整數(shù)部分:678小數(shù)部分小數(shù)部分:32例例6-8import java.util.regex.*;pub

11、lic class Example6_8 public static void main(String args ) Pattern p; /模式對象模式對象 Matcher m; /匹配對象匹配對象 String s1=0A1A2A3A4A5A6A7A8A9; /待匹配的字符序列待匹配的字符序列 p=Ppile(dAd);/用模式用模式dAd初始化模式初始化模式對象對象 m=p.matcher(s1); /用待匹配字符序列初始化匹配對象用待匹配字符序列初始化匹配對象 while(m.find() String str=m.group(); System.out.print(從從+m.star

12、t()+到到+m.end()+匹配模匹配模式子序列式子序列:); System.out.println(str); 例例6-8String temp=m.replaceAll(*); System.out.println(temp); System.out.println(s1); m=p.matcher(9A00A3); /重新初始化匹配對象重新初始化匹配對象 if(m.matches() String str=m.group(); System.out.println(str); else System.out.println(不完全匹配不完全匹配); if(m.lookingAt() S

13、tring str=m.group(); System.out.println(str); D:javajavac Example6_8.javaD:javajava Example6_8從從0到到3匹配模式子序列匹配模式子序列:0A1從從4到到7匹配模式子序列匹配模式子序列:2A3從從8到到11匹配模式子序列匹配模式子序列:4A5從從12到到15匹配模式子序列匹配模式子序列:6A7從從16到到19匹配模式子序列匹配模式子序列:8A9*A*A*A*A*0A1A2A3A4A5A6A7A8A9不完全匹配不完全匹配9A0例例6-9例例6-9import java.util.regex.*;publi

14、c class Example6_9 public static void main(String args ) Pattern p; Matcher m; String s=2008年年08月月08日日20點點,北京奧運開幕北京奧運開幕; p=Ppile(“d+”);/用模式用模式“d +”初始化模式對初始化模式對象象 /查找查找s中的數(shù)字信中的數(shù)字信息所用模式息所用模式 m=p.matcher(s); /用待匹配字符序列初始化匹配對象用待匹配字符序列初始化匹配對象 while(m.find() String str=m.group(); System.out.print(從從+m.star

15、t()+到到+m.end()+匹配匹配模式子序列模式子序列:); System.out.println(str); p=Ppile(D+);/查找查找s中的非數(shù)字信息所用模中的非數(shù)字信息所用模式式 m=p.matcher(s); while(m.find() String str=m.group(); System.out.print(從從+m.start()+到到+m.end()+匹匹配模式子序列配模式子序列:); System.out.println(str); D:javajavac Example6_9.javaD:javajava Example6_9從從0到到4匹配模式子序列匹配模

16、式子序列:2008從從5到到7匹配模式子序列匹配模式子序列:08從從8到到10匹配模式子序列匹配模式子序列:08從從11到到13匹配模式子序列匹配模式子序列:20從從4到到5匹配模式子序列匹配模式子序列:年年從從7到到8匹配模式子序列匹配模式子序列:月月從從10到到11匹配模式子序列匹配模式子序列:日日從從13到到21匹配模式子序列匹配模式子序列:點點,北京奧運開幕北京奧運開幕例例6-10import java.util.regex.*;public class Example6_10 public static void main(String args ) Pattern p; Match

17、er m; String s1=loveyouhatemelove123jkjhate999love888; p=Ppile(lovew3|hatew2); m=p.matcher(s1); while(m.find() String str=m.group(); System.out.print(從從+m.start()+到到+m.end()+匹配匹配模式子序列模式子序列:); System.out.println(str); 例例6-10D:javajavac Example6_10.javaD:javajava Example6_10從從0到到7匹配模式子序列匹配模式子序列:loveyo

18、u從從7到到13匹配模式子序列匹配模式子序列:hateme從從13到到20匹配模式子序列匹配模式子序列:love123從從23到到29匹配模式子序列匹配模式子序列:hate99從從30到到37匹配模式子序列匹配模式子序列:love8886.5 正則表達式與字符串分解 語言符號:從字符串中分解出可被獨立使用的單詞,這些語言符號:從字符串中分解出可被獨立使用的單詞,這些單詞叫做語言符號。單詞叫做語言符號。 為了分解一個字符串,必須事先制定用于分解字符串的分為了分解一個字符串,必須事先制定用于分解字符串的分隔標記。隔標記。 例:例:“We are students”,若空格是分隔標記,則字符串可,若

19、空格是分隔標記,則字符串可以分解出三個單詞。以分解出三個單詞。 用正則表達式分解字符串用正則表達式分解字符串 JDK1.4后,后,String類提供了一個實用的方法:類提供了一個實用的方法: public String split(String regex) 字符串調(diào)用該方法時,使用參數(shù)指定的正則表達式字符串調(diào)用該方法時,使用參數(shù)指定的正則表達式regex 作為分隔標記來分解出其中的單詞,并將分解出的作為分隔標記來分解出其中的單詞,并將分解出的單詞存放在字符串數(shù)組中。單詞存放在字符串數(shù)組中。 例如:字符串:例如:字符串:str=“1931年年09月月18日晚,日本發(fā)動侵日晚,日本發(fā)動侵華戰(zhàn)爭,

20、請記住這個日子華戰(zhàn)爭,請記住這個日子!”; 如果準備分解出全部由數(shù)字字符組成的單詞,就必須如果準備分解出全部由數(shù)字字符組成的單詞,就必須用非數(shù)字字符串作為分隔標記,可以使用正則表達式用非數(shù)字字符串作為分隔標記,可以使用正則表達式 String regex=”D+”;作為分隔標記,作為分隔標記,分解出分解出str中的單詞:中的單詞:String digitWord=str.split(regex); 那么,那么,digitWord0、 digitWord1和和digitWord2的的內(nèi)容分別是內(nèi)容分別是”1931”、”09”和和”18”.例例6-11例例6-11import java.util.Scanner; public class Example6_11 public static void main (String arg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論