《Java面向对象》课件-5.1 字符串类_第1页
《Java面向对象》课件-5.1 字符串类_第2页
《Java面向对象》课件-5.1 字符串类_第3页
《Java面向对象》课件-5.1 字符串类_第4页
《Java面向对象》课件-5.1 字符串类_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

模块五Java常用API目录/Contents01字符串类02日期时间类03Math类与Random类04正则表达式字符串类任务一字符串类字符串是编写程序时使用最为频繁的数据类型之一,为了更好的封装和处理字符串数据,Java提供了三种主要的字符串类,分别是String、StringBuffer和StringBuilder,它们位于java.lang包中,可以直接使用而不需要导包。下面对String类、StringBuffer类和StringBuilder类分别进行讲解。学习目标掌握String类的初始化,能够创建并初始化String对象

先定一个小目标!掌握StringBuffer类和StringBuilder类的使用,能够熟练使用StringBuffer类和StringBuilder类对字符串进行操作,并简述两者的区别熟悉String类的常用方法,能够使用String类的常用方法对字符串进行查找、替换、分割、截取等操作String类的初始化String类Java提供用于表示字符串的类之一,使用该类可以创建和操作字符串对象。使用String类进行字符串操作之前,首先需要初始化String对象,初始化的方式有使用字符串常量和使用构造方法两种方式。String类的初始化(1)使用字符串常量使用字符串常量初始化一个String类对象的语法格式如下。String变量名=字符串;String为引用数据类型,字符串可以为一个具体的字符串,也可以设置为null。示例代码如下。Stringstr1=null;//将字符串str1设置为nullStringstr2="";//将字符串str2设置为空字符串Stringstr3="hello";//将字符串str3设置为helloString类的初始化(1)使用字符串常量String类代表一个不可变的字符序列。这意味着只要一个String对象被创建,它的值就不能被修改。示例代码及图解变化如下。Strings="hello";s="helloworld";String类的初始化(2)使用构造方法String类提供了多个构造方法来初始化字符串对象,其中的常见构造方法如下表所示。方法声明功能描述String()创建一个内容为空的字符串String(Stringvalue)根据指定的字符串value创建对象String(char[]value)根据指定的字符数组value创建对象String(byte[]bytes)根据指定的字节数组bytes创建对象String类的初始化案例演示下面通过一个案例演示使用构造方法创建String类的对象。Example02.java源代码String类的初始化案例演示案例的运行结果如下图所示。String类的初始化小提示:字符串连接运算符Java中的运算符“+”可以用来连接字符串。例如文件Example02.java中,"s1="+s1的作用就是将s1=和字符串s1的值拼接成一个新的字符串。在Java程序中,如果符号“+”的两边操作数中有一个为String类型,那么“+”就表示字符串连接运算符。String类的常用方法为了方便操作和处理字符串,String类提供了一系列常用的方法,包括查找、替换、比较和截取等操作。方法声明功能描述intlength()返回当前字符串的长度,即字符串中字符的个数intindexOf(intch)返回指定字符ch在字符串中第一次出现的位置(索引)intlastIndexOf(intch)返回指定字符ch在字符串中最后一次出现的位置intindexOf(Stringstr)返回指定子字符串str在字符串第一次出现的位置intlastIndexOf(Stringstr)返回指定子字符串str在此字符串中最后一次出现的位置charcharAt(intindex)返回字符串中index位置上的字符,其中index的取值范围是0~(字符串长度-1)booleanstartsWith(Stringprefix)判断此字符串是否以指定的字符串prefix开始booleanendsWith(Stringsuffix)判断此字符串是否以指定的字符串suffix结尾String类的常用方法方法声明功能描述booleanisEmpty()判断字符串长度是否为0,如果为0则返回true,反之则返回falsebooleanequals(Objectobj)比较obj与当前字符串对象的内容是否相同booleanequalsIgnoreCase(Stringstr)以忽略大小写的方式比较str与当前字符串对象的内容是否相同intcompareTo(Stringstr)按对应字符的Unicode比较str与当前字符串的大小。若当前字符串比str大,返回正整数;若当前字符串比str小,返回负整数;若相等则返回0intcompareToIgnoreCase(Stringstr)按对应字符的Unicode以忽略大小写的方式比较str与当前字符串的大小。若当前字符串比str大,返回正整数;若当前字符串比str小,返回负整数;若相等则返回0booleancontains(CharSequencecs)判断此字符串中是否包含指定的字符序列cs。StringtoLowerCase()使用默认语言环境的规则将String中的所有字符都转换为小写StringtoUpperCase()使用默认语言环境的规则将String中的所有字符都转换为大写接上页表格。String类的常用方法方法声明功能描述staticString

valueOf(int

i)将int变量i转换成字符串char[]toCharArray()将此字符串转换为一个字符数组Stringreplace(CharSequenceoldstr,CharSequencenewstr)使用newstr替换字符串中的oldstr,返回一个新的字符串Stringtrim()去除了原字符串首尾的空格Stringconcat(Stringstr)将指定的字符串str连接到当前字符串的末尾String[]split(Stringregex)根据参数regex将当前字符串分割为若干个子字符串Stringsubstring(intbeginIndex)返回一个新字符串,它包含从指定的beginIndex处开始,直到此字符串末尾的所有字符Stringsubstring(intbeginIndex,intendIndex)返回一个新字符串,它包含从指定的beginIndex处开始,直到索引endIndex-1处的所有字符接上页表格。String类的常用方法1.字符串的获取操作在Java程序中,有时需要获取字符串的一些信息,比如获取字符串的长度、获取指定索引位置的字符等。String类的常用方法1.字符串的获取操作通过一个案例学习使用String类的方法获取字符串长度、以及访问字符串中的字符。Example03.java源代码String类的常用方法1.字符串的获取操作案例的运行结果如下图所示。String类的常用方法2.字符串的判断操作在实际开发中,常常需要对字符串进行各种判断操作。例如,在用户注册时,程序可能需要验证填写的用户信息是否符合特定的格式要求,例如,字符串是否为空、是否以指定字符串开始或结束、是否包含指定的字符串等。String类的常用方法2.字符串的判断操作通过一个案例演示如何调用String类提供的方法进行字符串的判断操作。Example04.java源代码String类的常用方法2.字符串的判断操作案例的运行结果如下图所示。String类的常用方法3.字符串的转换操作在程序开发中,经常需要对字符串进行各种转换操作。例如,在数据处理时,为了方便拆分字符串,可以将字符串转换成数组形式,或者为了符合特定格式需求,需要将字符串中的字符进行大小写转换等。String类的常用方法3.字符串的转换操作下面通过一个案例演示字符串的转换操作。Example05.java源代码String类的常用方法3.字符串的转换操作案例的运行结果如下图所示。String类的常用方法4.字符串的替换和去除空格操作在程序开发中,经常会遇到需要对字符串进行替换和去除空格的操作。例如,开发一个文本编辑器时,提供查找和替换功能可以快速的修改或替换特定的文本。String类的常用方法4.字符串的替换和去除空格操作下面通过一个案例演示字符串的替换和去除空格的操作。Example06.java源代码String类的常用方法4.字符串的替换和去除空格操作案例的运行结果如下图所示。String类的常用方法5.字符串的拼接、截取和分割操作在程序开发中,对字符串的拼接、截取和分割也是很常见的操作。例如,购物网站将用户ID和当前时间拼接起来生成订单号,或者在一段文本信息中,截取需要的部分,再根据指定分隔符将其分割为若干段。String类的常用方法5.字符串的拼接、截取和分割操作下面通过一个案例演示字符串的拼接、分割和截取操作。Example07.java源代码String类的常用方法5.字符串的拼接、截取和分割操作案例的运行结果如下图所示。StringBuffer类和StringBuilder类由于String类的字符串对象被创建后,其内容是不可变的。如果需要频繁地操作字符串,会导致不断地创建新的String类对象,从而占用大量内存,也会降低CPU的效率。为此,Java提供了StringBuffer类,StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类和StringBuilder类StringBuffer类提供了一系列高效地处理字符串的方法,常用方法如下表所示。方法声明功能描述StringBuffer()创建初始容量为16,不含任何内容的字符串缓冲区StringBuffer(intcapacity)创建初始容量为capacity,不含任何内容的字符串缓冲区StringBuffer(Strings)创建初始容量为参数s的长度+16,内容为s的字符串缓冲区intcapacity()获取字符串缓冲区的当前容量StringBufferappend(charc)添加参数到StringBuffer对象中StringBufferinsert(intoffset,Stringstr)在字符串的offset位置插入字符串strvoidsetCharAt(intindex,charch)修改指定位置index处的字符序列StringBuffer类和StringBuilder类接上页表格。方法声明功能描述StringBufferreplace(intstart,intend,Strings)在StringBuffer对象中替换指定的字符或字符串序列StringBufferdeleteCharAt(intindex)移除此序列指定位置的字符StringBufferdelete(intstart,intend)删除StringBuffer对象中指定范围的字符或字符串序列StringtoString()返回StringBuffer缓冲区中的字符串StringBufferreverse()反转字符串StringBuffer类和StringBuilder类案例演示下面通过一个案例演示StringBuffer类常用方法的使用。Example08.java源代码StringBuffer类和StringBuilder类案例演示案例的运行效果如下图所示。StringBuffer类和StringBuilder类

需要注意的是,在使用StringBuffer类的replace()方法时,传入的位置范围是从开始位置到结束位置之前一个的字符。例如,在文件Example08.java的第15行代码中,传入的位置范围为2到7,实际上是替换字符串中的第3个到第7个字符,而不是第3个到第6个字符。StringBuffer类和StringBuilder类String类字符串类String类字符串对象不可变,仅用于表示数据类型。StringBuffer类StringBuffer类可以创建可变的字符串对象,是线程安全的。在多线程环境下,可以更安全的操作字符串。StringBuilder类StringBuilder类可以创建可变的字符串对象,是非线程安全的。在单线程环境下,代码性能更高。StringBuilder类提供了与StringBuffer类相似的方法用于操作字符串。StringBuffer类和StringBuilder类关于String类、StringBuffer类和StringBuilder类的使用时的注意事项。(1)在StringBuffer类与StringBuilder类中并没有对Object类的equlas()方法重写,具体示例如下。Strings1=newString("abc");Strings2=newString("abc");System.out.println(s1.equals(s2));//结果为trueStringBuffers3=newStringBuffer("abc");StringBuffers4=newStringBuffer("abc");System.out.println(s3.equals(s4));//结果为falseStringBuilders5=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论