欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    字符串和正则表达式.ppt

    • 资源ID:6564320       资源大小:221.66KB        全文页数:30页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    字符串和正则表达式.ppt

    1,第6章字符串和正则表达式,本章导读1.String类2.StringBuffer类3.StringTokenizer类4.正则表达式与模式匹配5正则表达式与字符串分解,2,6.1 String类,Java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是类类型变量,是一个对象。字符串常量 如:“你好”、“1234.987”、“weqweo”。1创建字符串对象 使用String类的构造方法创建字符串对象:例如:String s;s=new String(we are students);声明和创建可用一步完成:String s=new String(we are students);也可以用一个已创建的字符串创建另一个字符串,如:String tom=String(s);,3,String类还有两个较常用构造方法:(1)String(char a):用一个字符数组a 创建一个字符串对象,如:char a=b,o,y;String s=new String(a);(2)String(char a,int startIndex,int count):提取字符数组a 中的一部分字符创建一个字符串对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数,例如:char a=s,t,b,u,s,n;String s=new String(a,2,3);2引用字符串常量对象 字符串常量是对象,因此可以把字符串常量的引用赋值给一个字符串变量(p113图6.1)String s1,s2;s1=“How are you”;s2=“How are you”;S1,s2具有相同的引用。,4,3String 类的常用方法(1)public int length()使用String 类中的length()方法可以获取一个字符串的长度(2)public boolean equals(String s)字符串对象调用String类中的equals方法,比较当前字符串对象的实体是否与参数指定的字符串s的实体相同(p114)(3)public boolean contains(String s)(p114)例子,5,(4)public boolean startsWith(String s)、public boolean endsWith(String s)方法 字符串对象调用startsWith(String s)方法,判断当前字符串对象的前缀是否是参数指定的字符串s 字符串对象调用endsWith(String s)方法,判断当前字符串对象的后缀是否是参数指定的字符串s(例p114)(5)public int compareTo(String s)方法 字符串对象可以使用String类中的compareTo(String s)方法,按字典序与参数s指定的字符串比较大小。如果当前字符串与s相同,该方法返回值0;如果当前字符串对象大于s,该方法返回正值;如果小于s,该方法返回负值。(例p115),6,(6)public int indexOf(String s)字符串调用方法indexOf(String s)从当前字符串的头开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。字符串调用indexOf(String s,int startpoint)方法从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。字符串调用lastIndexOf(String s)方法从当前字符串的头开始检索字符串s,并返回最后出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。(例p115),7,(7)public String substring(int startpoint)字符串对象调用该方法获得一个当前字符串的子串,该子串是从当前字符串的startpoint处截取到最后所得到的字符串。字符串对象调用substring(int start,int end)方法获得一个当前字符串的子串,该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。(例p115)(8)public String replaceAll(String old,String new)字符串对象s调用该方法可以获得一个串对象,这个串对象是通过用参数new指定的字符串替换s中由old指定的所有字符串而得到的字符串。(9)public String trim()一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。,8,4字符串与基本数据的相互转化 java.lang包中的Integer类调用其类方法:public static int parseInt(String s)可以将“数字”格式的字符串,如“12387”,转化为int型数据。类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法:public static byte parseByte(String s)public static short parseShort(String s)public static long parseLong(String s)public static double parseFloat(String s)public static double parseDouble(String s)同样可以将“数字”格式的字符串,转化为相应的基本数据类型。,9,使用Long类中的p116中的类方法可得到整数的各种进制的字符串表示:例子2有关public static void main(String args)中的String args(p116)有时,我们需要将数字转化为字符串,可以使用String 类的下列类方法:public String valueOf(byte n)public String valueOf(int n)public String valueOf(long n)public String valueOf(float n)public String valueOf(double n)5对象的字符串表示所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public 方法toString(),一个对象通过调用该方法可以获得该对象的字符串表示。例子3,10,6字符串与字符、字节数组(1)字符串与字符数组 我们已经知道String 类的构造方法:String(char)和String(char,int offset,int length)分别用数组a中的全部字符和部分字符创建字符串对象。String类也提供了将字符串存放到数组中的方法:public void getChars(int start,int end,char c,int offset)字符串调用getChars方法将当前字符串中的一部分字符复制到参数c指定的数组中,将字符串中从位置start到end-1位置上的字符复制的数组c中,并从数组c的offset处开始存放这些字符。需要注意的是,必须保证数组c能容纳下要被复制的字符。,11,String 类还提供了一个方法:public char toCharArray()字符串对象调用该方法可以初始化一个字符数组,该数组的长度与字符串的长度相等,并将字符串对象的全部字符复制到该数组中。例子4(2)字符串与字节数组 String类的构造方法String(byte)用指定的字节数组构造一个字符串对象。String(byte,int offset,int length)构造方法用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。public byte getBytes()方法使用平台默认的字符编码,将当前字符串转化为一个字节数组。例子5,返回,12,6.2 StringBuffer 类,前面我们学习了String字符串对象,String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的 在这一节,我们介绍StringBuffer类,该类能创建可修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。1StringBuffer类的构造方法 StringBuffer类有三个构造方法:(1)StringBuffer()(2)StringBuffer(int size)(3)StringBuffer(String s),13,使用第1个无参数的构造方法创建一个StringBuffer对象,那么分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动地增加,以便存放所增加的字符。StringBuffer对象可以通过length()方法获取实体中存放的字符序列的长度,通过capacity()方法获取当前实体的实际容量。使用第2个构造方法创建一个StringBuffer对象,那么可以指定分配给该对象的实体的初始容量为参数size 指定的字符个数,当该对象的实体存放的字符序列的长度大于size 个字符时,实体的容量自动地增加,以便存放所增加的字符。使用第3个构造方法创建一个StringBuffer对象,那么可以指定分配给该对象的实体的初始容量为参数字符串s的长度额外再加16个字符。当该对象的实体存放的字符序列的长度大于size 个字符时,实体的容量自动地增加,以便存放所增加的字符。,14,2StringBuffer类的常用方法(1)append方法 使用StringBuffer类的append方法可以将其它Java类型数据转化为字符串后,再追加到StringBuffer对象中。(p119)(2)char charAt(int n)得到参数n指定的位置上的单个字符。当前对象实体中的字符串序列的第一个位置为0,第二个位置为1,依次类推。n的值必须是非负的,并且小于当前对象实体中字符串序列的长度。(3)void setCharAt(int n,char ch)将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。n的值必须是非负的,并且小于当前对象实体中字符串序列的长度。,15,(4)StringBuffer insert(int index,String str)insert方法将一个字符串插入另一个字符串中,并返回当前对象的引用。(5)public StringBuffer reverse()StringBuffer对象使用reverse()方法将该对象实体中的字符翻转,并返回当前对象的引用。(6)StringBuffer delete(int startIndex,int endIndex)从当前StringBuffer对象实体中的字符串中删除一个子字符串,并返回当前对象的引用。这里startIndex指定了需删除的第一个字符的下标,而endIndex指定了需删除的最后一个字符的下一个字符的下标。因此要删除的子字符串从startIndex到endIndex-1。,16,(7)StringBuffer replace(int startIndex,int endIndex,String str)将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。被替换的子字符串由下标startIndex 和endIndex,指定,即从startIndex到endIndex-1的字符串被替换。该方法返回当前StringBuffer对象的引用。例子6,返回,17,6.3 StringTokenizer 类,当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法:1StringTokenizer(String s)为字符串s构造一个分析器。使用默认的分隔符集合,即空格符(若干个空格被看做一个空格)、换行符、回车符、Tab符、进纸符。2StringTokenizer(String s,String delim)为字符串s构造一个分析器,参数dilim中的字符被作为分隔符。,18,我们把一个StringTokenizer对象称作一个字符串分析器,字符串分析器封装着语言符号和对其进行操作的方法。一个分析器可以使用nextToken()方法逐个获取字符串分析器中的语言符号(单词),每当获取到一个语言符号,字符串分析器中的负责计数的变量的值就自动减一,该计数变量的初始值等于字符串中的单词数目。字符串分析器调用countTokens()方法可以得到计数变量的值。字符串分析器通常用while循环来逐个获取语言符号,为了控制循环,我们可以使用StringTokenizer类中的hasMoreTokens()方法,只要计数的变量的值大于0,该方法就返回true,否则返回false。下面是一个应用程序(例子7),用户从键盘输入一个浮点数,程序输出分别输出该数的整数部分和小数部分,返回,19,6.4 正则表达式与模式匹配,1正则表达式 一个正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达式中的元字符。比如,“dok”中的d就是有特殊意义的元字符,代表0到9中的任何一个。一个正则表达式也称作一个模式,字符串“9ok”和“1ok”都是和模式:“dok”匹配的字符串之一。和一个模式匹配的字符串称作匹配模式字符串,也称作模式匹配字符串。2模式匹配 模式匹配就是检索和指定模式匹配的字符串。Java提供了专门用来进行模式匹配的类,这些类在包中。,20,(1)建立模式对象 进行模式匹配的第一步就是使用Pattern类创建一个对象,称作模式对象。Pattern类调用类方法compile(String patter)来完成这一任务,其中的参数patter是一个正则表达式,称作模式对象使用的模式 例如,我们使用正则表达式“Ad”建立一个模式对象p:Pattern p=Ppile(Ad);如果参数patter指定的正则表达式有错,complie方法将抛出异常:PatternSyntaxException。,21,Pattern类也可以调用类方法compile(String regex,int flags)返回一个Pattern对象,参数flags可以取下列有效值:Pattern.CASE_INSENSITIVE Pattern.MULTILINE Pattern.DOTALL Pattern.UNICODE_CASE Pattern.CANON_EQ 例如,flags取值Pattern.CASE_INSENSITIVE,模式匹配时将忽略大小写。,22,(2)建立匹配对象 模式对象p调用matcher(CharSequence input)方法返回一个Matcher对象m,称作匹配对象,参数input可以是任何一个实现了CharSequence接口的类创建的对象,我们前面学习的String类和StringBuffer类都使用了CharSequence接口。,23,一个Matcher对象m可以使用下列3个方法寻找参数input指定的字符序列中是否有和模式patter匹配的子序列(patter是创建模式对象p时使用的正则表达式)。public boolean find():寻找input和patter匹配的下一子序列public boolean matches():判断input是否完全和patter匹配。public boolean lookingAt():判断从input的开始位置是否有和patter匹配的子序列。,24,下列几个方法也是Matcher对象m常用的方法public boolean find(int start)判断input从参数start指定位置开始是否有和patter匹配的子序列,参数start取值0时,该方法和lookingAt()的功能相同。public String replaceAll(String replacement)Matcher对象m调用该方法可以返回一个字符串对象,该字符串是通过把input中与模式patter匹配的子字符串全部替换为参数replacement指定的字符串得到的(注意,input本身没有发生变化)。public String replaceFirst(String replacement)Matcher对象m调用该方法可以返回一个字符串对象,该字符串是通过把input中第1个与模式patter匹配的子字符串替换为参数replacement指定的字符串得到的(注意,input本身没有发生变化)。例子8,返回,25,元字符模式,在正则表达式(模式)中可以使用一对方括号括起若干个字符,代 表方括号中的任何一个字符。例如pattern=“159ABC”,那么“1ABC”、“5ABC”和“9ABC”都是和模式pattern匹配的字符序列。方括号模式的一些意义如下:abc:代表a、b、c中的任何一个。abc:代表除了a、b、c以外的任何字符 a-d:代表 a至d中的任何一个。另外,中括号里允许嵌套中括号,可以进行并、交、差运算,例如:a-dm-p:代表 a至d,或 m 至 p中的任何字符(并)。a-z&def:代表d、e、或 f中的任何一个(交)。a-f&bc:代表a、d、e、f(差),26,表6.1代表单个字符的元字符,27,表 6.2 限定符,返回,28,限定符模式,用X代表正则表达式中的一个元字符或普通字符,那么X?就表示X出现0次或1次,例如 pattern=“A1359?”(X是“1359”),那么“A”、“A1”、“A3”、“A5”、“A9”是匹配模式pattern的全部字符串。再比如,pattern=“w4”(X是“w”),那么“abcd”、“girl”、“moon”、“flag”都是匹配模式pattern的字符串之一。例子9,返回,29,模式的逻辑或,模式可以使用“|”位运算符进行逻辑“或”运算得到一个新模式。例如,pattern1、pattern2是两个模式,即两个正则表达式。那么 pattern=pattern1|pattern2 就是两个模式的“或”。一个字符串如果匹配模式pattren1或匹配模式pattern2,那么就匹配模式pattern。例子10,返回,30,6.5 正则表达式与字符串分解,String 类提供了一个实用的方法:public String split(String regex)字符串调用该方法时,使用参数指定的正则表达式regex做为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中 例子11,

    注意事项

    本文(字符串和正则表达式.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开