




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章:面向對象(基礎)
—— 面向對象的概念 類與對象的定義計算機教研室夏麗麗本章目標了解面向對象的基本概念了解面向對象的三個主要特征掌握類與對象的關系掌握類的定義掌握對象的聲明及使用掌握匿名對象的使用掌握JAVA中的內存劃分理解Java引用傳遞掌握封裝的產生目的掌握封裝的實現掌握setter和getter方法的定義面向過程與面向對象程序的發展經歷了兩個主要階段:面向過程、面向對象對于面向對象與面向過程可以用一個例子解釋,如一個木匠要做一個盒子,那么做這個盒子的出發點會有兩種方式:面向對象:先想好要做的盒子,之后再去找相應的工具去做。面向過程:不去想要做什么樣的盒子,隨需取用工具。面向對象的三大特征封裝(Encapsulation)隱藏細節權限控制繼承(Inheritance)類的層次結構,擴展類的功能多態(Polymorphism)方法的重載對象的多態性類與對象客觀世界對象類范疇實體萬事萬物皆是對象類與對象類是對某一類事物的描述,是抽象的、概念上的定義;對象是實際存在的該類事物的每個個體,因而也稱實例(instance)具體的實例具體的實例具體的實例具體的實例具體的實例具體的實例抽象的概念類與對象的關系類與對象圖書館管理系統中的類讀者圖書管理員數據庫類的構成屬性操作類的定義聲明成員變量(屬性)定義方法的內容class類名稱{ 數據類型屬性; …. public返回值的數據類型方法名稱(參數1,參數2…){ 程序語句; [return表達式;] }}定義Bird類classBird{ Stringcolor; intsize; publicvoidfly(){ System.out.println(“Fly!Fly!Fly!”); }}屬性操作成員變量的聲明[修飾符]變量類型變量名聲明成員變量時,前面的修飾符可有可無,修飾符包括private、protected、public和其他的成員變量對類內定義的方法都有效,在類的方法中定義的變量為局部變量,它只在定義它的方法中有效成員變量的訪問權限權限同一類同一包子類其他public○○○○protected○○○×private○×××缺省○○××成員變量的聲明例:classA{intx;//成員變量intf(){inta=1;//局部變量x=a;}
intg(){inty;//局部變量y=a+x;//a非法引用}}方法的聲明[修飾符]返回值類型方法名(參數列表){方法體}如果方法中的參數名或局部變量的名與類的成員變量的名相同,則成員變量在這個方法內暫時被隱藏如果成員變量在方法內被隱藏,又要在方法中引用成員變量,必須使用this類的聲明例:classA{intx,z;voidg(intz){intx=5+z;//x為局部變量,z為參數this.x=x;this.z=z;}對象的創建及使用類名對象名稱=null; //聲明對象對象名稱=new類名(); //實例化對象類名對象名稱=new類名();classBird{ Stringcolor; intsize; publicvoidfly(){ System.out.println(“Fly!Fly!Fly!”); }}publicclassDemo01{ publicstaticvoidmain(Stringargs[]){ Birdb=newBird(); }}訪問類中的屬性和方法訪問屬性:對象名稱.屬性名訪問方法:對象名稱.方法名()classBird{ Stringcolor; intsize; publicvoidfly(){ System.out.println(“Fly!Fly!Fly!”); }}publicclassDemo02{ publicstaticvoidmain(Stringargs[]){ Birdb=newBird();b.color=“black”;//為屬性賦值b.size=111;System.out.println(“顏色:”+b.color+”\t大小:”+b.size);b.fly();//調用類中的方法 }}對象的內存模型棧存放基本數據類型和對象堆存放對象實例Birdb=newBird();b.color=“black”;b.size=111;H15H14H13H12H11H05H04H03H02H01b:Size:0Color:nullSize:111Color:black匿名對象只使用一次的對象,稱為匿名對象。匿名對象只在堆內存中開辟空間,而不存在棧內存的引用。publicclassDemo03{ publicstaticvoidmain(Stringargs[]){ newBird().fly(); //匿名對象 }}聲明多個對象publicclassDemo04{ publicstaticvoidmain(Stringargs[]){ Birdb1=null; //聲明b1對象 Birdb2=null; //聲明b2對象 b1=newBird(); //實例化b1對象 b2=newBird(); //實例化b2對象 b1.color=“blue"; //設置b1對象的color屬性內容 b1.size=122; //設置b1對象的size屬性內容 b2.color=“yellow"; //設置b2對象的color屬性內容 b2.size=111; //設置b2對象的size屬性內容 System.out.print(“b1的顏色:”+b1.color+”\t大小:”+b1.size);b1.fly();//b1調用類中的方法 System.out.print(“b2的顏色:”+b2.color+”\t大小:”+b2.size);b2.fly();//b2調用類中的方法 }}對象引用傳遞publicclassDemo05{ publicstaticvoidmain(Stringargs[]){ Birdb1=null; //聲明b1對象 Birdb2=null; //聲明b2對象 b1=newBird(); //實例化b1對象 b1.color=“blue"; //設置b1對象的color屬性內容 b1.size=122; //設置b1對象的size屬性內容b2=b1; //b2對象引用b1對象 System.out.print(“b1的顏色:”+b1.color+”\t大小:”+b1.size);b1.fly();//b1調用類中的方法 System.out.print(“b2的顏色:”+b1.color+”\t大小:”+b2.size);b2.fly();//b2調用類中的方法 }}對象引用傳遞publicclassDemo06{ publicstaticvoidmain(Stringargs[]){ Birdb1=null; //聲明b1對象 Birdb2=null; //聲明b2對象 b1=newBird(); //實例化b1對象 b2=newBird(); //實例化b2對象 b1.color=“blue"; //設置b1對象的color屬性內容 b1.size=122; //設置b1對象的size屬性內容 b2.color=“yellow"; //設置b2對象的color屬性內容 b2.size=111; //設置b2對象的size屬性內容b2=b1; System.out.print(“b1的顏色:”+b1.color+”\t大小:”+b1.size);b1.fly();//b1調用類中的方法 System.out.print(“b2的顏色:”+b2.color+”\t大小:”+b2.size);b2.fly();//b2調用類中的方法 }}封裝的實現為屬性封裝:private屬性類型屬性名稱;為方法封裝:private方法返回值方法名稱(參數列表){}classBird{ privateStringcolor; //聲明姓名屬性 privateintsize; //聲明年齡屬性 publicvoidfly(){ //取得信息的方法 System.out.println(“Fly!Fly!Fly!”); }}publicclassDemo07{ publicstaticvoidmain(Stringargs[]){ Birdb=newBird(); b.color=“black"; //錯誤,無法訪問封裝屬性 b.size=111; //錯誤,無法訪問封裝屬性 b.fly(); }}setter及getterclassBird{ privateStringcolor; privateintsize; publicvoidfly(){ System.out.println(“Fly!Fly!Fly!”); } publicStringgetColor(){ returncolor; } publicvoidsetColor(Stringc){ color=c; } publicintgetSize(){ returnsize; } publicvoidsetSize(ints){ size=s; }}setter及getterpublicclassDemo08{ publicstaticvoidmain(Stringargs[]){ Birdb=newBird(); b.setColor(“black”);b.setSize(123);System.out.println(”顏色:“+b.getColor()+”\t大小:”+b.getSize() b.fly(); }}總結:類與對象的關系:類是抽象范疇,對象是某一具體實體類的定義包含屬性(基本數據類型或對象)和操作(方法)對象需要聲明實例化后才能使用,對象的實例化由new關鍵字完成匿名對象是只使用一次的對象,且只在對內存中開辟空間。類的封裝由private實現封裝后的類屬性通過setter及getter方法來設置和獲得下一章內容構造方法與類分析設計第5章:面向對象(基礎) ——構造方法與類分析設計計算機教研室夏麗麗本章目標掌握構造方法的概念及調用時機掌握構造方法的重載掌握類的基本分析思路,并能分析具體的題目難點如何來分析設計程序構造方法對象的產生格式:類名稱對象名稱=new類名稱()因為有“()”,所以表示的是一個方法這實際上就是一個構造方法構造方法的定義格式構造方法主要用于為類的方法中變量賦初始值的功能。當用new創建一個類的新的對象時,構造方法就立即執行。構造方法名字必須與類名相同。除了構造方法,在類中不能出現與類名相同的方法。定義格式如下:class類名稱{ 訪問權限類名稱(類型1參數1,類型2參數2,…){ 程序語句; …//構造方法沒有返回值 }}構造方法的注意點:構造方法沒有返回值類型,甚至沒有void。其修飾符只能是訪問控制修飾符,即public、private、protected中的任一個。構造方法可以從父類中繼承。構造方法可以重載,一個類可以有任意多個構造方法。不同的構造方法根據參數的不同狀態來選擇合適的構造方法。構造方法不能直接通過方法名引用,必須通過new運算符。Java語言中每個類都有構造方法,如果一個類中沒有說明該類的構造方法,則系統將提供隱含的不帶任何參數的構造方法,這個空的構造方法其實什么也不做。一旦我們定義了自己的構造方法,Java編譯器就不再添加這種缺省的構造方法。構造方法的目的構造方法的主要目的是為類中的屬性初始化。classBird{ privateStringcolor; privateintsize;publicBird(Stringcolor,intsize){//聲明構造函數this.color=color;//或this.setColor(color);this.size=size;//或this.setSize(size); publicvoidfly(){ System.out.println(“Fly!Fly!Fly!”); } … publicvoidsetSize(ints){ size=s; }}publicclassDemo09{ publicstaticvoidmain(Stringargs[]){ Birdb=newBird(“black",111); //調用構造方法,傳遞兩個參數 System.out.println(”顏色:“+b.getColor()+”\t大小:”+b.getSize());//輸出信息 b.fly(); }}構造方法重載構造方法的重載過程與普通方法一樣:參數的類型或個數不同 publicBird(){} publicBird(Stringcolor){ this.setColor(color); } publicBird(Stringcolor,intsize){ this.setColor(color); this.setSize(size); }類設計分析思路1、根據要求寫出類所包含的屬性;2、所有的屬性都必須進行封裝(private);3、封裝之后的屬性通過setter和getter設置和取得;4、如果需要可以加入若干構造方法;5、再根據其他要求添加相應的方法;6、類中的所有方法都不要直接輸出,而是交給被調用處輸出例:編寫并測試一個代表地址的Address類,地址信息由國家、省份、城市、街道、郵編組成,并返回完整的地址信息。(參見Demo文檔中的ClassDesignDemo1.java)屬性及類型No.屬性屬性類型屬性名稱1國家Stringcountry2省份Stringprovince3城市Stringcity4街道Stringstreet5郵編Stringcode定義出方法(普通方法、構造方法)No.方法名稱返回值類型作用1publicvoidsetCountry(Stringcountry)void設置國家2publicvoidsetPovince(Stringprovince)void設置省份3publicvoidsetCity(Stringcity)void設置城市4publicvoidsetStreet(Stringstreet)void設置街道5publicvoidsetCode(Stringcode)void設置郵編6publicStringgetCountry()String取得國家7publicStringgetPovince()String取得省份8publicStringgetCity()String取得城市9publicStringgetStreet()String取得街道10publicStringgetCode()String取得郵編15PublicStringgetString()String返回完整信息16publicAddress(){}-無參構造方法17publicAddress(Stringcountry,Stringpovince,Stringcity,Stringstreet,Stringcode)-在對象實例化的時候直接將國家、省份、城市、街道、郵編設置進去設計類圖例:定義并測試一個名為Student的類,包括屬性有“學號”、“姓名”,以及3門課程“數學”、“英語”和“計算機”的成績,包括的方法有計算3門課程的“總分”、“平均分”、“最高分”及“最低分”以及返回Student類的所有完整信息組合。(參見Demo文檔中的ClassDesignDemo2.java)屬性及類型No.屬性屬性類型屬性名稱1學號Stringstuno2姓名Stringname3數學成績floatmath4英語成績floatenglish5計算機成績floatcomputer定義出方法(普通方法、構造方法)No.方法名稱返回值類型作用1publicvoidsetStuno(Strings)void設置學生編號2publicvoidsetName(Stringn)void設置學生姓名3publicvoidsetMath(floatm)void設置數學成績4publicvoidsetEnglish(floate)void設置英語成績5publicvoidsetComputer(floatc)void設置計算機成績6publicStringgetStuno()String取得學生編號7publicStringgetName()String取得學生姓名8publicfloatgetMath()float取得數學成績9publicfloatgetEnglish()float取得英語成績10publicfloatgetComputer()float取得計算機成績11publicfloatsum()float計算成績總和12publicfloatavg()float計算平均成績13publicfloatmax()float求出最高成績14publicfloatmin()float求出最低成績15publicStringgetString()String返回完整信息16publicStudent(){}-無參構造方法17publicStudent(Stringstuno,Stringname,floatmath,floatenglish,floatcomputer)-在對象實例化的時候直接將學號、姓名、數學成績、英語成績、計算機成績設置進去設計類圖總結:構造方法的作用是對成員變量初始化賦值。構造方法是沒有返回值的,任何一個類中都有必定會有一個構造方法。構造方法也是可以重載的,跟普通方法一樣根據參數列表區分。題目的分析要一點點慢慢地分析積累下一章內容字符串第5章:面向對象(基礎) ——String類及其常用方法計算機教研室夏麗麗本章目標掌握String類的兩種實例化方式掌握String的兩種比較操作深入分析String類兩種實例化方式的區別掌握String的使用特點掌握String類中的常用方法掌握StringBuffer與String的區別掌握StringBuffer的常用方法掌握StringBuffer的實際應用掌握String對正則的支持String類聲明“abc”,“Java程序設計語言”,“1234”Strings創建創建空字符串s=newString();根據給定的字符串創建字符串s=newString(“Java語言”)s=“Java語言”s=newString(str)String類根據字符數組創建字符串chara[4]={‘J’,’a’,’v’,a’}Strings=newString(a)chara[]={‘I’,‘a’,‘m’,‘a’,‘b’,‘o’,‘y’}Strings=newString(a,4,3)String的比較方式String的比較有兩種方式:==:地址值比較equals()方法:內容比較,區分大小寫equalsIgnoreCase()方法:內容比較,不區分大小寫字符串比較publicclassDemo10{ publicstaticvoidmain(String[]args){Strings1="Iamastudent";Strings2="Iamastudent";Strings3=newString("Iamastudent");Strings4=newString("Iamastudent");Strings5=newString("IAMASTUDENT");System.out.println("s1==s2->"+(s1==s2));//-->trueSystem.out.println("s1==s3->"+(s1==s3));//-->falseSystem.out.println("s2==s3->"+(s2==s3));//-->falseSystem.out.println("s1.equals(s2)->"+(s1.equals(s2)));//-->trueSystem.out.println("s1.equals(s3)->"+(s1.equals(s3)));//-->trueSystem.out.println("s2.equals(s3)->"+(s2.equals(s3)));//-->trueSystem.out.println("s3.equals(s5)->"+(s3.equals(s5)));//-->falseSystem.out.println("s3.equalsIgnoreCase(s5)->"+(s3.equalsIgnoreCase(s5)));//-->true }}字符串的內容一旦聲明則不可改變publicclassDemo11{ publicstaticvoidmain(String[]args){ Stringstr="hello"; str=str+"world!"; System.out.println("str="+str); }}驗證字符串的內容不可改變publicclassDemo12{ publicstaticvoidmain(String[]args){ Stringstr="hello";fun(str); System.out.println("str="+str); }publicstaticvoidfun(Strings){s=s+"world!";System.out.println("s="+s);}}不正確的使用publicclassDemo13{ publicstaticvoidmain(String[]args){ Stringstr1=“Hello"; for(inti=0;i<100;i++){ str1+=i; } System.out.println(str1); }}String類的常用方法字符串連接:+多個字符串連接連接其他類型publicclassDemo14{ publicstaticvoidmain(String[]args){ Strings1=“Hello”;Strings2=“World!”;Strings3=s1+”“+s2; System.out.println(“s3=“+s3);inta=4;floatb=2.5fSystem.out.println(“我每天花費“+a+“小時看書;“+b+“小時上機練習“); }}String類的常用方法將字符串轉為字符數組:toCharArray()publicclassDemo15{ publicstaticvoidmain(String[]args){ Strings=“Hello”;charc[]=s.toCharArray(); for(inti=0;i<c.length;i++){System.out.println(c[i]+“\t“);} }}String類的常用方法字符串轉與字節數組:getBytes()publicclassDemo16{ publicstaticvoidmain(Stringargs[]){ byte[]b=newbyte[7]; for(inti=0;i<7;i++) b[i]=(byte)(i+65);//A的SCII值為65 Strings1=newString(b); Strings2=newString(b,3,3); byte[]a=s1.getBytes(); System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("a.length="+a.length); System.out.println("用字符輸出數組a:"); for(inti=0;i<a.length;i++) System.out.print((char)a[i]); }}String類的常用方法獲取字符串的長度:length()publicclassDemo17{ publicstaticvoidmain(String[]args){ Strings=“WeareStudents!”;System.out.println(“字符串的長度為:“+s.length()); }}String類的常用方法獲取指定位置的字符:charAt(int
index)publicclassDemo18{ publicstaticvoidmain(String[]args){ Strings=“helloworld!”;System.out.println(“字符串s中索引位置是6的字符為:“+s.charAt(6)); }}String類的常用方法獲取指定字符的位置:indexOf(String
str)、indexOf(String
str,int
fromIndex)、lastIndexOf(String
str)publicclassDemo19{ publicstaticvoidmain(String[]args){Strings=“Wearestudents!”;System.out.println(s.indexOf(“s”));//首次出現的位置System.out.println(s.indexOf(“s”,8));//從第8個開始查找System.out.println(s.lastIndexOf(“s”));//最后出現的位置System.out.println(s.lastIndexOf(“is”));//搜索不到返回-1 }}String類的常用方法去掉左右空格:trim()publicclassDemo20{ publicstaticvoidmain(String[]args){Strings=“Javaclass”;System.out.println(“字符串原來的長度為:”+s.length());System.out.println(“去掉空格后字符串的長度為:”+s.length());System.out.println(“去掉空格后的字符串為:”+s.trim()); }}String類的常用方法字符串替換:replace(CharSequence
target,CharSequence
replacement)、replaceAll(String
regex,String
replacement)、replaceFirst(String
regex,String
replacement)publicclassDemo21{ publicstaticvoidmain(String[]args){Strings=“badbadstudy”;System.out.println(s.replace(“bad”,”good”));System.out.println(s.replaceAll(“bad”,”good”));System.out.println(s.replaceFirst(“bad”,”good”)); }}String類的常用方法大小寫轉換:toUpperCase()、toLowerCase()publicclassDemo22{ publicstaticvoidmain(String[]args){Strings=“abcDEF”;System.out.println(s.toUpperCase());System.out.println(s.toLowerCase()); }}String類的常用方法判斷字符串的開頭和結尾:startsWith(String
prefix)、endsWith(String
suffix)publicclassDemo23{ publicstaticvoidmain(String[]args){Stringnum1=“22045612”;Stringnum2=“21304578”;booleanb1=num1.startsWith(“22”);booleanb2=num1.endsWith(“78”);booleanb3=num2.startsWith(“22”);booleanb4=num2.startsWith(“78”);System.out.println(”字符串num1是以’22’開始的嗎?”+b1);System.out.println(”字符串num1是以’78’結束的嗎?”+b2);System.out.println(”字符串num2是以’22’開始的嗎?”+b3);System.out.println(”字符串num2是以’78’開始的嗎?”+b4); }}String類的常用方法字符串截取:substring(int
beginIndex)、substring(int
beginIndex,int
endIndex)publicclassDemo24{ publicstaticvoidmain(String[]args){Strings=“Ilikestudyjava”;System.out.println(s.substring(7));System.out.println(s.substring(7,12)); }}String類的常用方法字符串分割:split(String
regex)、split(String
regex,int
limit)注:若定義多個分割符,使用符號“|”publicclassDemo25{ publicstaticvoidmain(String[]args){Strings=“abc,def,ghi,gkl”;String[]news1=s.split(“,”);String[]news2=s.split(“,”,2);System.out.println(”按分隔符分割后的字符串是:”);for(inti=0;i<news1.length;i++)System.out.println(news1[i]);System.out.println(”按分隔符分割一次后的字符串是:”);for(inti=0;i<news2.length;i++)System.out.println(news2[i]); }}String類的常用方法字符串比較大小:compareTo(String
anotherString)、compareToIgnoreCase(String
str)如:pareTo(s2):若相同返回0;若s1>s2返回正值;若s1<s2返回負值publicclassDemo26{ publicstaticvoidmain(String[]args){Strings1="abc";Strings2="Abc";Strings3="abc";Strings4=newString("abc");System.out.println(pareTo(s2));System.out.println(pareTo(s1));System.out.println(pareTo(s3));System.out.println(pareTo(s4));System.out.println(pareToIgnoreCase(s2)); }}StringBuffer聲明和實例化當一個字符串的內容需要被經常改變時就要使用StringBufferStringBuffers=newStringBuffer();StringBuffers=newStringBuffer(“helloworld!”);在StringBuffer中使用append()方法,完成字符串的連接操作如:s.append(“Hello”).append(““).append(“World”).append(“!!!”);驗證字符串的內容是可改變publicclassDemo27{ publicstaticvoidmain(String[]args){ StringBufferstr=newStringBuffer();str.append(“hello”);fun(str); System.out.println("str="+str); }publicstaticvoidfun(StringBuffers){s.append("world!“);System.out.println("s="+s);}}改進的代碼publicclassDemo28{ publicstaticvoidmain(String[]args){ StringBufferbuf=newStringBuffer(); buf.append(“Hello"); for(inti=0;i<100;i++){ buf.append(i); //StringBuffer可以修改,性能高 } System.out.println(buf); }}StringBuffer類的常用方法No.方法定義類型描述1publicStringBuffer()構造StringBuffer的構造方法2publicStringBufferappend(charc)方法在StringBuffer中提供了大量的追加操作(與String中使用“+”類似),可以向StringBuffer中追加內容,此方法可以添加任何的數據類型。3publicStringBufferappend(Stringstr)方法4publicStringBufferappend(StringBuffersb)方法5publicintindexOf(Stringstr)方法查找指定字符串是否存在6publicintindexOf(Stringstr,intfromIndex)方法從指定位置開始查找指定字符串是否存在7publicStringBufferinsert(intoffset,Stringstr)方法在指定位置處加上指定字符串8publicStringBufferreverse()方法將內容反轉保存9publicStringBufferreplace(intstart,intend,Stringstr)方法指定內容替換10publicintlength()方法求出內容長度11publicStringBufferdelete(intstart,intend)方法刪除指定范圍的字符串12publicStringsubstring(intstart)方法字符串截取,指定開始點13publicStringsubstring(intstart,intend)方法截取指定范圍的字符串14publicStringtoString()方法Object類繼承的方法,用于將內容變為String類型StringBuffer類的常用方法指定位置處插入內容:StringBufferinsert(int
offset,String
str)publicclassDemo29{ publicstaticvoidmain(String[]args){StringBufferstr=newStringBuffer();str.append(“like”);str.insert(0,”I”);System.out.println(str);str.insert(str.length(),”Java”);System.out.println(str);str.insert(7,”study”);System.out.println(str); }}StringBuffer類的常用方法字符串反轉:reverse()publicclassDemo30{ publicstaticvoidmain(String[]args){StringBufferstr=newStringBuffer();str.append(“abcd”);System.out.println(str.reverse()); }}StringBuffer類的常用方法刪除指定范圍的字符串:delete(int
start,int
end)publicclassDemo31{ publicstaticvoidmain(String[]args){StringBufferstr=newStringBuffer();str.append("Hello").append("World");Strings=str.delete(str.indexOf("World"),str.length()).toString();System.out.println(s); }}正則表達式正則表達式可以方便的對數據進行匹配,可以執行更加復雜的字符串驗證、拆份、替換功能。例如:現在要求判斷一個字符串是否由數字組成,則可以有以下的兩種做法:不使用正則完成使用正則完成不使用正則完成publicclassDemo32{ publicstaticvoidmain(String[]args){Stringstr="1234565";booleanflag=true;charc[]=str.toCharArray();//字符串轉化為字符數組for(inti=0;i<c.length;i++)if(c[i]<'0'||c[i]>'9'){flag=false;break;}if(flag==true)System.out.println(str+"是數字字符串");elseSystem.out.println(str+"不是數字字符串"); }}不使用正則完成publicclassDemo32{ publicstaticvoidmain(String[]args){Stringstr="1234565";if(str.matches("\\d+"))System.out.println(str+"是數字字符串");elseSystem.out.println(str+"不是數字字符串"); }}常用正則規則——INo.規范描述No.規范描述1\\表示反斜線(\)字符2\t表示制表符3\n表示換行4[abc]字符a、b或c5[^abc]除了a、b、c之外的任意字符6[a-zA-Z0-9]表示由字母、數字組成7\d表示數字8\D表示非數字9\w表示字母、數字、下劃線10\W表示非字母、數字、下劃線11\s表示所有空白字符(換行、空格等)12\S表示所有非空白字符13^行的開頭14$行的結尾15.匹配除換行符之外的任意字符常用正則規則——II數量表示(X表示一組規范)No.規范描述No.規范描述1X必須出現一次2X?可以出現0次或1次3X*可以出現0次、1次或多次4X+可以出現1次或多次5X{n}必須出現n次6X{n,}必須出現n次以上7X{n,m}必須出現n~m次邏輯運算符(X、Y表示一組規范)No.規范描述No.規范描述1XYX規范后跟著Y規范2X|YX規范或Y規范3(X)做為一個捕獲組規范
String對正則表達式的支持在String類中有以下三個方法是支持正則操作的No.方法類型描述1publicbooleanmatches(Stringregex)普通字符串匹配2publicStringreplaceAll(Stringregex,Stringreplacement)普通字符串替換3publicString[]split(Stringregex)普通字符串拆分正則表達式應用publicclassDemo33
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產褥感染護理
- 創意餐飲店員工權益保障合同范本
- 股權激勵財產分配及退出協議
- 邴嵐與張華離婚后子女贍養及教育責任協議書
- 醫療健康產品代言人簽約范本
- 車輛抵押貸款合同(含車輛過戶)
- 環保項目補貼資金合同模板
- 巢湖軍供站公房租賃與設施設備維護及租賃管理合同
- 金融衍生品交易財產保全擔保合同模板
- 柴油大宗購銷合同十項標準
- 豬丁型冠狀病毒感染對ST細胞凋亡與自噬的機制解析
- 國家開放大學2025年《創業基礎》形考任務2答案
- 接觸網工程施工工藝手冊(簡版)
- 油品計量計算知識課件
- 《產品結構剖析》教學課件
- 北京中考英語單詞表(核心詞匯)
- 血氣分析課件完整版
- 乳業企業員工崗前培訓手冊
- 擋土墻隱蔽工程驗收記錄
- 《實驗室安全教育》課程教學大綱(本科)
- 部編版六年級下冊語文作業本參考答案
評論
0/150
提交評論