6 字符串处理.ppt

上传人:hyn****60 文档编号:82467976 上传时间:2023-03-25 格式:PPT 页数:27 大小:316KB
返回 下载 相关 举报
6 字符串处理.ppt_第1页
第1页 / 共27页
6 字符串处理.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《6 字符串处理.ppt》由会员分享,可在线阅读,更多相关《6 字符串处理.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、回顾v1.类的继承extendv2.类的多态v3.包packagev4.接口interface第六章字符串处理v主要内容:主要内容:v6.1String类v6.2StringBuffer类v6.3字符串的比较教学目的和要求:教学目的和要求:v理解理解Java字符串处理机制字符串处理机制v掌握掌握String类的使用类的使用v掌握掌握StringBuffer类的使用类的使用v掌握如何比较两个字符串掌握如何比较两个字符串v重点:String类中方法的使用;StringBuffer类中方法的使用;字符串比较方法的使用v难点:理解各种字符串比较方法之间的差异教学重点与难点教学重点与难点 6.1Stri

2、ng类v字符串是程序设计中经常用到,很多编程语言将字符串定义为基本数据类型(或字符数组)。v但在Java中,字符串被定义为一个类String类,必须先生成String类的对象后才能使用字符串。v将字符串作为对象处理有很多好处:有很多途径来构造String对象;可以很容易得到字符串;有很多方法来比较字符串、搜索字符串、连接字符串以及改变字符串中字母的大小写。两种类型的字符串v定长字符串:String类(效率较高)不能更改v可变字符串:StringBuffer类(使用灵活)可追加、插入、修改,但内存管理复杂6.1.1生成String对象vJava中生成String对象有两种方法:v1、字面量、字面

3、量String。直接用字符串常量字符串常量给一个String对象对象赋值,这个String对象就称为字面量String。v例如:Strings1=“hello”;v注意:在Java中,用双引号括起来的字符串是字符串常量字符串常量。每个字符串常量字符串常量都自动被定义为一个匿名的String对象。字面量String字符串常量,代表一个匿名的String对象生成String对象的第二种方法v2、String 类的构造方法。类的构造方法。publicString()默认构造方法,新建一个空的字符串对象,相当于“”,这时字符串长度为0publicString(Stringoriginal)用一个已经存

4、在的字符串对象创建一个新的String对象,该对象内容与已存在的对象一致。original可以是另外一个String对象,也可以是一个字符串常量。publicString(charvalue)用指定的字符数组value来创建一个字符串对象,这时字符串对象中的内容为字符数组中的内容。public class StringConstructorspublic static void main(String args)String s1=new String();/s1的值为空的值为空String s2=new String(Java);/s2的值为的值为Javachar country=c,h,i

5、,n,a;String s3=new String(country);/s3的值为的值为chinaString str=Hello;/生成字面量生成字面量String strString s4=new String(str);/s4的值为的值为HelloSystem.out.println(s1=+s1);System.out.println(s2=+s2);System.out.println(s3=+s3);System.out.println(s4=+s4);构造方法构造方法构造方法构造方法6.1.2获取字符串vString类提供了许多从String对象中获取新字符或字符串的方方法法。c

6、harcharAt(intindex)获取字符串某一指定位置的字符。字符串的下标从0开始,Index不能为负数。v例如:charch;ch=abc.charAt(1);voidgetChars(intsourceStart,intsourceEnd,chartarget,inttargetStart)getChars方法将一个字符串中的多个字符复制到一个字符数组中。字符串的起始位置字符串的终止位置目标字符数组字符数组的起始位置chartoCharArray()将String对象中的所有字符转为一个字符数组。v例如:Strings=ThisisademoofgetCharsmethod.;cha

7、rbuf=newchar40;buf=s.toCharArray();Stringsubstring(intstartIndex)/获取子字符串从指定的下标startIndex开始复制字符串中的字符,直到字符串末尾。vStringsubstring(intstartIndex,intendIndex)从startIndex开始复制字符串中字符,直到endIndex结束。Stringconcat(Stringstr)将一个字符串连接到另一个字符串后面。v例如:Strings1=one;Strings2=s1.concat(two);onetwov等价于:Strings1=one;Strings2

8、=s1+two;onetwoStringreplace(charoldChar,charnewChar)将字符串中的所有字符oldChar替换为字符newCharv例如:Strings=Hello.replace(l,w);HewwoStringtrim()将位于字符串前面和后面的空格删除。v例如:Strings=HelloWorld.trim();HelloWorldStringtoLowerCase()将字符串中的所有字符从大写字母改写成小写字母。vStringtoUpperCase()将字符串中的所有字符从小写字母改写成大写字母。v例如:Strings=Thisisatest;s.toL

9、owerCase();thisisatests.toUpperCase();THISISATEST6.1.3 搜索字符串搜索字符串 intlength()获取给定字符串的长度。v例如:charchars=a,b,c;Strings=newString(chars);System.out.println(s.length();intindexOf(intch)查找给定字符ch在字符串中第一次出现第一次出现的位置。如果找到该字符,则返回该字符在字符串中的位置;否则返回-1。vintindexOf(intch,intstartIndex)v功能与上面的方法相同,startIndex指定在字符串中开始

10、查找的位置。intlastIndexOf(intch)查找给定字符ch在字符串中最后一次出现最后一次出现的位置,如果找到该字符,则返回该字符在字符串中的位置;否则返回-1vintlastIndexOf(intch,intstartIndex)v功能与上面的方法相同,startIndex指定在字符串中开始查找的位置。v对子字符串进行搜索与搜索单个字符的方法完全相同,只需要改变参数的类型vintindexOf(Stringstr)intindexOf(intch)vintindexOf(Stringstr,intstartIndex)vintlastIndexOf(Stringstr)vintla

11、stIndexOf(Stringstr,intstartIndex)v例如:Strings=Chinese;Stringstr=ese;inti=s.indexOf(str);6.1.4 valueOf()方法方法vvalueOf()方法可以将基本数据类型转化为字符串类型。staticStringvalueOf(booleanb)/布尔型staticStringvalueOf(charc)/字符型staticStringvalueOf(inti)/整型6.2 StringBuffer类类vString类表示定长定长、不可变不可变的字符序列。vStringBuffer类则表示可变长的可变长的和可

12、写的可写的字符序列。vStringBuffer对象中可以插入或者追加新的字符或子字符串。vStringBuffer对象针对新添加的内容自动地增加内存空间。6.2.1 构造方法构造方法StringBuffer()默认构造方法,创建一个不包含字符不包含字符、且初始容量为16个字符(StringBuffer对象的默认容量默认容量)的StringBuffer对象。StringBuffer(intsize)创建一个不包含字符不包含字符,初始容量由size指定的StringBuffer对象。StringBuffer(Stringstr)创建一个StringBuffer对象,该对象包含参数包含参数str中的

13、字符中的字符,且初始容量为参数str中的字符数目加上16。6.2.2 长度和容量长度和容量vintlength()当前StringBuffer对象的实际长度vintcapacity()在不需要另外分配内存的情况下,StringBuffer对象可以存储的字符数目。v例子:StringBuffersb=newStringBuffer(Hello);System.out.println(length=+sb.length();System.out.println(capacity=+sb.capacity();length=5capacity=21StringBuffer(Stringstr)6.2

14、.3 修改字符串修改字符串append()将任意类型的数据以字符串形式连接到StringBuffer对象的后面后面。vStringBuffer类提供了11种重载的append方法,以便将各种类型的数据添加到StringBuffer对象的后面后面。v例如:StringBufferappend(Stringstr);StringBufferappend(intnum);StringBufferappend(Objectobj);insert()将任意类型的数据以字符串形式插入到StringBuffer对象的任意位置任意位置。vStringBuffer类提供10种重载的insert方法,以便在Str

15、ingBuffer对象的任何位置任何位置插入各种类型的数据。v例如:StringBufferinsert(intindex,Stringstr);StringBufferinsert(intindex,charch);StringBufferinsert(intindex,Objectobj);append()insert()6.3 字符串的比较字符串的比较booleanequals(Strings1,Strings2)比较两个字符串的值是否相等booleanequalsIgnoreCase(Strings1,Strings2)比较两个字符串的值是否相等,忽略大小写v比较两个字符串是否相等,只

16、有给定的两个字符串的长度和内容完全一致,才返回true,否则返回false。v例如:Strings1=a;Strings2=newString(a);Strings3=A;System.out.println(s1.equals(s2);System.out.println(s1.equals(s3);System.out.println(s1.equalsIgnoreCase(s3);truefalsetrue注意注意v对于字符串的比较,还可以使用等于运算符()。v与equals方法不同,“”不是比较两个字符串的值是否相等,而是比较两个对象变量的值(字符串在内存的地址)是否相等,即是否指向同

17、一个字符串对象。v在进行对象比较时,要特别注意比较的是对象的值,还是对象变量的值,如果要判定对象的值是否相等,使用equals方法,如果是判定两个对象变量的值是否相等,则使用“”运算符。0 x1234567a 0 x1234568b 对象的值对象的值对象变量(引用)s1,值是对象在内存的地址对象变量(引用)s2,值是对象在内存的地址Strings1=a;Strings2=b;s1s2s1.equals(s2)0 x12345670 x1234568public class E6_8public static void main(String args)String s1=a;String s2

18、=a;String s3=new String(a);String s4=new String(a);System.out.println(s1.equals(s2);/对象值的比较对象值的比较System.out.println(s3.equals(s4);/对象值的比较对象值的比较System.out.println(s1.equals(s3);/对象值的比较对象值的比较System.out.println(s1=s2);/对象变量值的比较对象变量值的比较System.out.println(s3=s4);/对象变量值的比较对象变量值的比较System.out.println(s1=s3)

19、;/对象变量值的比较对象变量值的比较 truefalsefalse String s1=a;String s2=a;String s3=new String(a);String s4=new String(a);0 x0000000a 0 x00000000 x0000001a 0 x00000010 x0000002a 0 x00000020 x0000000s1s2s3s4s1=s2s3!=s4本章小结本章小结n字符串是程序设计中经常用到的数据结构,很多编程语言将字符串定义为基本数据类型。n在Java语言中,字符串被定义成一个类String或者StringBuffer类。nString类用来处理创建以后不再改变的字符串。nStringBuffer类用来处理可变字符串。n掌握String类和StringBuffer类所提供的各种方法的使用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com