第5章w面向对象_第1页
第5章w面向对象_第2页
第5章w面向对象_第3页
第5章w面向对象_第4页
第5章w面向对象_第5页
已阅读5页,还剩94页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论