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

    第6章字符串ppt课件.ppt

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

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

    第6章字符串ppt课件.ppt

    第6章 字符串,本章要点,掌握字符串的创建方式掌握字符串的常用操作掌握字符串的格式化理解正则表达式掌握常见正则表达式的定义掌握StringBuilder类的用法,第6章 字符串,6.1 创建字符串6.2 字符串操作6.3 格式化字符串6.4 正则表达式6.5 可变字符串,主要内容,6.1 创建字符串,String类即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用。要创建字符串可以通过多种方式实现。1)可以通过为字符串变量赋值的方式来实例化字符串对象,注意:声明字符串变量必须经过初始化或赋值后才能使用,否则编译器会报出“变量未被初始化”错误。,6.1 创建字符串,2)在Java中用java.lang.String类的构造方法来创建字符串变量。常用的构造方法如下:String()创建一个String类型的对象,其内容为空。String(char a)使用指定的字符数组创建字符串对象。String(char a,int offset,int length)使用指定的字符数组创建字符串对象,offset表示字符数组起始位置。length表示长度。,6.1 创建字符串,char a=g,o,o,d;String s=new String(a);String s=new String(good);char a=s,t,u,d,e,n,t;String s=new String(a,2,4);String s=new String(uden);,6.1 创建字符串,3)在Java中还可以通过调用String类的valueOf方法来实例化字符串对象。例如:int x=100;String s=String.valueOf(x);,6.2.1 字符串连接6.2.2 获取字符串信息6.2.3 字符串比较6.2.4 字符串替换6.2.5 字符串分割6.2.6 大小写转换6.2.7 取出首末空格,6.2 字符串操作,6.2.1 字符串连接,字符串连接是字符串的基本操作之一,有两种方式可以实现:“+”String类的concat()方法为了简单起见通常使用“+”而不会调用方法。concat()方法的语法如下。public String concat(String str),6.2.1 字符串连接,【例6-1】分别使用“+”和concat()方法来连接字符串,并将结果输出。,String str1=Hello+World!;String str2=Hello.concat(World!);System.out.println(使用+连接字符串:+str1);System.out.println(使用concat()方法:+str2);,6.2.1 字符串连接,Java中一句相连的字符串不能分开在两行中写:,System.out.println(“I likeJava”),System.out.println(I like+Java);,6.2.1 字符串连接,字符串同其它数据类型连接,“Money”+1+2,“Money”+(1+2),“Money12”,“Money3”,6.2.2 获取字符串信息,使用String类中length()方法,可以获得当前字符串中包含的Unicode代码单元个数。通常情况下,即包含的字符个数。注意:空格也算字符。一个汉字的长度也只有1。注意:区分String类的length()方法与数组的length属性。,1.获取字符串长度,String name=一颗椰子树;System.out.println(字符串:+name+t长度为:+name.length();,1.获取字符串长度,2.获取指定字符的索引位置,String类的indexOf()和lastIndexOf()方法都可以获得给定的字符/字符串在目标字符串中的索引位置,如果未找到匹配的字符或字符串则会返回-1。indexOf()方法返回第一个符合要求的索引值public int indexOf(String str)lastIndexOf()返回最后一个符合要求索引值public int lastIndexOf(String str),2.获取指定字符的索引位置,String str=We are students;int index=str.indexOf(a);int lastindex=str.lastIndexOf(e);System.out.println(a在+str+中的起始位置是:+index);System.out.println(e在+str+中的最后位置是:+lastindex);,3.获取指定索引位置的字符,String类的charAt()方法可以获得指定索引位置的字符,该方法的语法如下。public char charAt(int index)index:目标字符的索引,其值在0和字符串长度-1之间。,String str=hello word;char mychar=str.charAt(6);,取子串,通过String类的substring()方法可对字符串进行截取。1)substring(int beginIndex)该方法返回的是从指定的索引位置开始截取直到该字符串的结尾的子串。,String str=Hello Word;String substr=str.substring(3);,取子串,2)substring(int beginIndex,int endIndex)该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束(不包括结束位置)的子串。,String str=Hello Word;String substr=str.substring(0,3);,注意:endIndex不要越界beginIndex,str.length(),6.2.3 字符串比较,String类的equals()方法可以用来比较两个字符串的内容是否完全相同public boolean equals(Object anObject)equalsIgnoreCase()方法可以在忽略大小写的情况下比较两个字符串的内容是否相同public boolean equalsIgnoreCase(String anotherString),1.比较全部内容,1.比较全部内容,String s1=new String(abc);String s2=new String(ABC);boolean b=s1.equals(s2);boolean b2=s1.equalsIgnoreCase(s2);System.out.println(s1+equals+s2+:+b);System.out.println(s1+equalsIgnoreCase+s2+:+b2);,Java的字符串池,String str1=abc;String str2=abc;String str3=new String(abc);System.out.println(str1=str2);System.out.println(str1=str3);,在进行字符串比较时,通过=比较对象时,比较的是两个对象使用的内存地址是否相同;当使用equals()方法比较两个对象时,只要两个对象的内容相同,结果就为true,否则为false。,Java虚拟机为了提高字符串应用效率,提供了字符串池来保存字符串常量,str1创建字符串常量“abc”,这时会先检测字符串池中是否包含该字符串,如果不包含,则创建字符串常量保存到字符串池中。str2也赋值为字符串“abc”,这是由于字符串池中已经存在该字符串,所以不再创建,也就是说这两个变量引用同一个字符串,那么它们的内存地址也是相同的,所以str1=str2成立。但是使用new关键字创建的字符串会新开辟内存空间所以str1=str3不成立。,Java的字符串池,2.比较开头结尾,String类的startsWith()方法可以用来判断是否以给定字符串开头,语法如下。public boolean startsWith(String prefix)prefix:字符串前缀String类的endsWith()方法可以用来判断是否已给定字符串结尾,语法如下。public boolean endsWith(String suffix)suffix:字符串后缀,2.比较开头结尾,String num1=22045612;boolean b=num1.startsWith(22);boolean b2=num1.endsWith(78);System.out.println(“字符串num1是以22开始的吗?+b);System.out.println(“字符串num1是以78结束的吗?+b2);,按字典顺序比较两个字符串,compareTo()方法按字典顺序比较两个字符串,该比较基于字符串中各个字符Unicode值。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。,pareTo(String otherstr)pareToIgnoreCase(String otherstr)str、otherstr:参加比较的两个字符串对象。,String str=new String(b);String str2=new String(“a”);String str3=new String(c);System.out.println(str+compareTo+str2+:+pareTo(str2);System.out.println(str+compareTo+str3+:+pareTo(str3);,6.2.4 字符串替换,String类的replace()方法可以替换字符串内全部指定子字符串为另一字符串:public String replace(CharSequence oldstr,CharSequence newstr)replace()方法返回的结果是一个新的字符串。如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。如果要替换的字符oldstr在字符串中重复出现多次,replace()方法会将所有oldstr全部替换成newstr。,String str=java project;String newstr=str.replace(j,J);此时,newstr的值为:Java proJect。需要注意的是,要替换的字符oldstr的大小写要与原字符串中字符的大小写保持一致,否则不能成功的替换。String newstr=str.replace(P,t);,6.2.4 字符串替换,还可以用该方法实现串中字符(子串)的删除,6.2.5 字符串分割,String类的split()方法可以用来分割字符串,也可以限定拆分的次数。public String split(String regex)public String split(String sign,int limit)regex:用于分割字符串的符号或正则表达式limit:用来限制返回数组中的元素个数,注意:没有统一的对字符进行分割的符号。如果想定义多个分隔符。可使用符号“|”。,6.2.5 字符串分割,【例6-5】输出给定字符串中单词的个数。,String message=So say we all!;String split=message.split();System.out.println(message+中共有+split.length+个单词!);,6.2.5 字符串分割,String str=new String(abc,def,ghi,gkl);String newstr=str.split(,);for(int i=0;i newstr.length;i+)System.out.println(newstri);String newstr2=str.split(,2);for(int j=0;jnewstr2.length;j+)System.out.println(newstr2j);,6.2.6 大小写转换,String类的toUpperCase()和toLowerCase()方法可以用来将字符串转换为全部大写和全部小写的形式,语法如下。public String toUpperCase()public String toLowerCase()如果字符串中没有应该被转换的字符,则将原字符串返回。否则将返回一个新的字符串,新字符长度与原字符长度相同。,【例6-6】将给定的字符串转换为大写和小写形式并输出。,6.2.6 大小写转换,String message=So say we all!;System.out.println(message);System.out.println(转换为大写形式:+message.toUpperCase();System.out.println(message);System.out.println(转换为小写形式:+message.toLowerCase();,6.2.7 去除首末空格,String类的trim()方法可以用来去除字符串首末空格。在获得用户输入信息时,通常会使用该方法,其语法如下。public String trim(),【例6-7】去掉给定字符串的首末空格并输出结果。,6.2.7 去除首末空格,String message=So say we all!;System.out.println(字符串长度:+message.length();System.out.println(去除空格后字符串长度:+message.trim().length();,【例】小写字母字符串循环右移3位进行加密,字符串字符数组,String word=abcxyz;char arr=word.toCharArray();for(int i=0;i=a,6.3.1 格式化方法 6.3.2 日期格式化6.3.3 时间格式化6.3.4 日期时间组合格式化6.3.5 常规类型格式化,6.3 格式化字符串,6.3.1 格式化方法,String类的format()方法可以用来格式化字符串,其语法如下。public static String format(String format,Object.args)format:使用了指定格式的字符串。args:与format字符串中对应的参数值。,使用format()方法对日期进行格式化时,会用到日期格式化转换符。,6.3.2 日期格式化,P77,Date date=new Date();String year=String.format(%tY,date);String month=String.format(%tB,date);String day=String.format(%td,date);System.out.println(今年是:+year+年);System.out.println(现在是:+month);System.out.println(今天是:+day+号);,6.3.2 日期格式化,时间格式化转换符可以将时间格式化为时、分、秒、毫秒。,6.3.3 时间格式化,P78,Date date=new Date();String hour=String.format(%tH,date);String minute=String.format(%tM,date);String second=String.format(%tS,date);System.out.println(现在是:+hour+时+minute+分+second+秒);,6.3.3 时间格式化,因为日期与时间经常是同时出现的,所以还定义了各种日期和时间组合的格式。,6.3.4 日期时间组合格式化,P79,Date date=new Date();String time=String.format(%tc,date);String form=String.format(%tF,date);System.out.println(全部的时间信息是:+time);System.out.println(年-月-日格式:+form);,6.3.4 日期时间组合格式化,常规类型的格式化转换符可以实现对常规类型的数据进行格式化。,6.3.5 常规类型格式化,P80,String str=String.format(%d,400/2);String str2=String.format(%b,3 5);String str3=String.format(%x,200);String str4=String.format(%.2f,1.2685);System.out.println(400的一半是:+str);System.out.println(35正确吗:+str2);System.out.println(200的16进制数是:+str3);System.out.println(1.2685保留两位小数是:+str4);,6.3.5 常规类型格式化,6.4.1 判断是否符合正则表达式6.4.2 正则表达式的元字符 6.4.3 正则表达式的限定符6.4.4 方括号中元字符的含义,6.4 正则表达式,正则表达式是事先定义好的一些特殊字符及这些特殊字符的组合,组成一个“规则字符串”。用来表达对字符串的过滤逻辑,通常被用于判断语句中,来检查某一字符串是否满足某一格式。,6.4 正则表达式,6.4.1 判断是否符合正则表达式,String类的matches()方法提供了比较字符串与给定正则表达式是否匹配的功能,该方法的语法如下 public boolean matches(String regex)regex:用于比较的正则表达式。,由一些含有特殊意义的字符组成的字符串,这些含有特殊意义的字符称为元字符。,6.4.2 正则表达式的元字符,P81,6.4.2 正则表达式的元字符,【例6-16】判断给定的字符串是否符合特定的正则表达式。大写字母+3个小写字母+3个数字。,String regex=pUpperpLowerpLower pLowerddd;String message1=SWJT001;String message2=Swjt001;boolean result1=message1.matches(regex);boolean result2=message2.matches(regex);System.out.println(message1+合法:+result1);System.out.println(message2+合法:+result2);,在使用正则表达式时,如果要某一类型的元字符多次输出,逐个输入就相当麻烦,可以使用正则表达式的限定元字符来重复次数。,6.4.3 正则表达式的限定符,P83,String regex=w1,w1,.1w1,;String str1=aaa;String str2=aaaa;String str3=;System.out.println(str1.matches(regex);System.out.println(str2.matches(regex);System.out.println(str3.matches(regex);,6.4.3 正则表达式的限定符,在正则表达式中还可以用方括号把多个字符括起来表示一个元字符,该元字符可代表方括号中的任何一个字符。,6.4.4 方括号中元字符的含义,P83,【例6-18】判断给定字符串是否为合法手机号,6.4.4 方括号中元字符的含义,String regex=(13d|15036-9|1889)d8$;String number=15044268138;boolean match=number.matches(regex);System.out.println(number+n合法手机号码:+match);,【例】统计汉字个数,6.4.4 方括号中元字符的含义,String m=我爱学java;String regex=u4e00-u9fff$;int c=0;for(int i=0;im.length();i+)if(+m.charAt(i).matches(regex)c+;System.out.println(m+中包含+c+个汉字);,6.5 可变字符串,使用Java中的String类创建字符串,它的长度是固定的,其内容不可以修改,即每次“修改”都相当于创建一个新的字符串。这在大量操作字符串的场合性能并不理想。为了解决这个问题,在API中提供了StringBuilder类,使用它来创建的字符串,内容可以实现真正意义上的修改。,String str=;/创建空字符串long starTime=System.currentTimeMillis();/定义对字符串执行操作的起始时间for(int i=0;i10000;i+)str=str+i;/循环追加字符串long endTime=System.currentTimeMillis();/定义对字符串操作后的时间long time=endTime-starTime;/计算对字符串执行操作的时间System.out.println(Sting消耗时间:+time);,6.5 可变字符串,StringBuffer类对象是可变的字符串,有改变字符串的若干方法。StringBuffer类构造函数StringBuffer()StringBuffer(int length)/设置初始容量StringBuffer(String s)/设置初始值StringBuffer类方法String toString()/转换为String类型字符串void setCharAt(int index,char c)/修改字符,6.5 可变字符串,新创建的StringBuilder对象初始容量是16个字符。可以自行指定初始长度。如果附加的字符超过可容纳的长度,则StringBuilder对象将自动增加长度以容纳被附加的字符。若要使用StringBuilder最后输出字符串结果。可使用toString()方法。应用StringBuilder类中的方法可动态的执行添加、删除、插入等字符串的编辑操作。,StringBuilder类常用方法,append()方法该方法用于向字符串生成器中追加内容,通过该方法的多个重载形式,可实现接受任何类型的数据。intsert(int offset,arg)方法该方法用于向字符串生成器中的指定位置插入数据内容。,StringBuilder bf=new StringBuilder(hello);bf.insert(5,word);System.out.println(bf.toString();,StringBuilder类常用方法,delete(int start,int end)方法移除此序列的子字符串中的字符。该子字符串从指定的start处开始,一直到索引end-1处的字符,如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。,StringBuilder bf=new StringBuilder(StringBuilder);bf.delete(5,10);System.out.println(bf.toString();,StringBuilder类常用方法,【例】字符串循环右移3位进行加密。,StringBuilder s=new StringBuilder(abcxyz);char c;for(int i=0;i=a,知识点提炼,1)Java中使用String类来定义字符串。2)使用“+”或者concat()方法可以连接字符串3)使用length()方法可以获得字符串长度。4)使用equals()方法可以用来比较两个字符串内容是否相同。5)使用replace()方法可以替换字符串内容。,知识点提炼,6)使用split()方法可以分割字符串。7)使用format()方法可以格式化字符串。8)使用正则表达式可以判断字符串是否符合某一指定模式。9)使用StringBuilder类可以创建内容可变的字符串。,作业,1.编程将字符串逆序排列2.编程验证从键盘输入的字符串是否全部为数字字符3.编程验证从键盘输入的身份证号是否合法,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开