字符串和字符.ppt

上传人:hwp****526 文档编号:84365242 上传时间:2023-04-05 格式:PPT 页数:32 大小:264.50KB
返回 下载 相关 举报
字符串和字符.ppt_第1页
第1页 / 共32页
字符串和字符.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

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

1、第第11章章 字符串和字符字符串和字符教学目标:教学目标:创建和操作不可修改的创建和操作不可修改的String类的字符串对象类的字符串对象 创建和操作可修改的创建和操作可修改的StringBuffer类的字符串对类的字符串对象象 创建和操作创建和操作Character类的类的 对象对象 使用使用StringTokenizer对象将对象将String对象分解为对象分解为符号符号教学重点:教学重点:掌握以上类的具体应用掌握以上类的具体应用 教学难点:教学难点:正则表达式正则表达式 Class java.lang.StringClass java.lang.StringBufferClass jav

2、a.lang.CharacterClass java.util.StringTokenizerPattern类和类和Matcher类:类:Class java.util.regex11.1 本章简介本章简介 字符是构建字符是构建Java源程序的基本构建块。字符常源程序的基本构建块。字符常量是一个整数值,它表示为单引号中的字符。量是一个整数值,它表示为单引号中的字符。字符串由一系列字符构成,将这些字符视为一字符串由一系列字符构成,将这些字符视为一个单元。字符串可以包含字母、数字和各种特殊字个单元。字符串可以包含字母、数字和各种特殊字符。字符串是符。字符串是String类的对象。字符串常量(以类的

3、对象。字符串常量(以“匿名匿名”的的String对象形式存储在内存中)记为双引对象形式存储在内存中)记为双引号中的一系列字符。号中的一系列字符。String color=“blue”;11.2 字符和字符串的基本知识字符和字符串的基本知识11.3.1 String类构造函数构造函数 char charArray=b,i,r,t,h,d,a,y;byte byteArray=(byte)n,(byte)e,(byte)w,(byte),(byte)y,(byte)e,(byte)a,(byte)r;String s=new String(hello);/use String constructo

4、rs String s1=new String();String s2=new String(s);String s3=new String(charArray);String s4=new String(charArray,6,3);String s5=new String(byteArray,4,4);String s6=new String(byteArray);11.3 String类类11.3.2 String类的方法类的方法Int length()返回此字符串的长度。返回此字符串的长度。Char charAt(intindex)返回指定索引处的返回指定索引处的 char 值。值。V

5、oid getChars(intsrcBegin,intsrcEnd,chardst,intdstBegin)将字符从此字符串复制到目标字符数组。将字符从此字符串复制到目标字符数组。11.3.3 字符串比较字符串比较 String s1=new String(hello);/s1 is a copy of hello String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String s5=“hello”;1、boolean equals(ObjectanObject):比较此字符比较此字符串与指定的对象。串与指

6、定的对象。if(s1.equals(hello)/true else String s1=new String(hello);/s1 is a copy of hello String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String s5=“hello”;2、=(比较引用时,如果两个对象引用指向内存中的(比较引用时,如果两个对象引用指向内存中的同一个对象,则比较结果为真;否则为假)同一个对象,则比较结果为真;否则为假)if(s1=hello)else if(s5=hello)else String s1=n

7、ew String(hello);/s1 is a copy of hello String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String s5=“hello”;3、boolean equalsIgnoreCase(StringanotherString)将此将此 String 与另一个与另一个 String 进进行比行比较较,不考,不考虑虑大小写。大小写。if(s3.equalsIgnoreCase(s4)/true output+=s3 equals s4n;else output+=s3 does

8、not equal s4n;String s1=new String(hello);/s1 is a copy of hello String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String s5=“hello”;4、int compareTo(StringanotherString)按字典按字典顺顺序序比比较较两个字符串。两个字符串。output+=pareTo(s2)is +pareTo(s2)+pareTo(s1)is +pareTo(s1)+pareTo(s1)is +pareTo(s1)+pare

9、To(s4)is +pareTo(s4)+pareTo(s3)is +pareTo(s3)+nn;String s1=new String(hello);/s1 is a copy of hello String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String s5=“hello”;5、boolean regionMatches(booleanignoreCase,inttoffset,Stringother,intooffset,intlen):测试测试两个字符串区域是否相等。两个字符串区域是否相等。bo

10、olean regionMatches(inttoffset,Stringother,intooffset,intlen):测试测试两个字符串区域是否相等。两个字符串区域是否相等。if(s3.regionMatches(0,s4,0,5)output+=First 5 characters of s3 and s4 matchn;else output+=First 5 characters of s3 and s4 do not matchn;if(s3.regionMatches(true,0,s4,0,5)output+=First 5 characters of s3 and s4 m

11、atch;else output+=First 5 characters of s3 and s4 do not match;6、boolean startsWith(Stringprefix)测试此字符串是否以指定的前缀开始。测试此字符串是否以指定的前缀开始。boolean startsWith(Stringprefix,inttoffset)测试此字符串是否以指定前缀开始,该前缀以指定索引开始。测试此字符串是否以指定前缀开始,该前缀以指定索引开始。boolean endsWith(Stringsuffix)测试此字符串是否以指定的后缀结束。测试此字符串是否以指定的后缀结束。11.3.4 定

12、位字符串中的字符和子字符串定位字符串中的字符和子字符串int indexOf(intch)返回指定字符在此字符串中第一次出现处的索引。返回指定字符在此字符串中第一次出现处的索引。Int indexOf(intch,intfromIndex)从指定的索引开始搜索,返回在此字符串中第一次出现指定从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。字符处的索引。Int indexOf(Stringstr)返回第一次出现的指定子字符串在此字符串中的索引。返回第一次出现的指定子字符串在此字符串中的索引。Int indexOf(Stringstr,intfromIndex)从指定的索引处开始

13、,返回第一次出现的指定子字符串在此从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。字符串中的索引。int lastIndexOf(intch)返回最后一次出现的指定字符在此字符串中的索引。返回最后一次出现的指定字符在此字符串中的索引。Int lastIndexOf(intch,intfromIndex)从指定的索引处开始进行后向搜索,返回最后一次出现的指从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。定字符在此字符串中的索引。Int lastIndexOf(Stringstr)返回在此字符串中最右边出现的指定子字符串的索引。返回在此字符串中最右

14、边出现的指定子字符串的索引。Int lastIndexOf(Stringstr,intfromIndex)从指定的索引处开始向后搜索,返回在此字符串中最后一次从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。出现的指定子字符串的索引。返回的整数是最大值返回的整数是最大值 k,它满足:,它满足:k=Math.min(fromIndex,str.length()&this.startsWith(str,k)如如果不存在这样的果不存在这样的 k 值,则返回值,则返回-1。String letters=abcdefghijklmabcdefghijklm;letters.i

15、ndexOf(“def”,7);返回的结果返回的结果?letters.indexOf(hello);返回的结果返回的结果?letters.lastIndexOf(“def”,2);返回的结果?返回的结果?letters.lastIndexOf(def,17);返回的结果?返回的结果?11.3.5 提取字符串中的子字符串提取字符串中的子字符串String substring(intbeginIndex)返回一个新的字符串,它是此字符串的一返回一个新的字符串,它是此字符串的一个子字符串。个子字符串。String substring(intbeginIndex,intendIndex)返回一个新字符

16、串,它是此字符串的一个返回一个新字符串,它是此字符串的一个子字符串。子字符串。beginIndex-开始处的索引(包括)。开始处的索引(包括)。endIndex-结束处的索引(不包括)。结束处的索引(不包括)。11.3.6 字符串连接及其他方法字符串连接及其他方法String concat(Stringstr)将指定字符串联到此字符串的结尾。将指定字符串联到此字符串的结尾。String replace(charoldChar,charnewChar)返回一个新的字符串,它是通过用返回一个新的字符串,它是通过用 newChar 替换此字符串替换此字符串中出现的所有中出现的所有 oldChar 而

17、生成的。而生成的。String toUpperCase()使用默认语言环境的规则将此使用默认语言环境的规则将此 String 中的所有字符都转换中的所有字符都转换为大写。为大写。String toLowerCase()使用默认语言环境的规则将此使用默认语言环境的规则将此 String 中的所有字符都转换中的所有字符都转换为小写。为小写。char toCharArray()将此字符串转换为一个新的字符数组。将此字符串转换为一个新的字符数组。String trim()返回字符串的副本,忽略前导空白和尾部空白。返回字符串的副本,忽略前导空白和尾部空白。11.3.7 String类的类的valueOf

18、方法方法staticString valueOf(booleanb/charc/doubled/floatf/inti/longl)返回返回 boolean 参数的字符串表示形式。参数的字符串表示形式。staticString valueOf(chardata)返回返回 char 数组参数的字符串表示形式。数组参数的字符串表示形式。staticString valueOf(chardata,intoffset,intcount)返回返回 char 数组参数的特定子数组的字符串表示形数组参数的特定子数组的字符串表示形式。式。staticString valueOf(Objectobj)返回返回

19、Object 参数的字符串表示形式。参数的字符串表示形式。(fig11.9)11.4.1 StringBuffer类的构造函数类的构造函数StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。个字符。StringBuffer(CharSequenceseq)构造一个字符串缓冲区,它包含与指定的构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。相同的字符。StringBuffer(intcapacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区。构造一个不带字符,但具有指定初

20、始容量的字符串缓冲区。StringBuffer(Stringstr)构造一个字符串缓冲区,并将其内容初始化为指定的字符串构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。内容。11.4.2 StringBuffer类的类的length、capacity、ensureCapacity方法方法int length()返回长度(字符数)。返回长度(字符数)。int capacity()返回当前容量。返回当前容量。void setLength(intnewLength)设置字符序列的长度。设置字符序列的长度。Void ensureCapacity(intminimumCapacity)确保容量

21、至少等于指定的最小值。确保容量至少等于指定的最小值。(fig11.11)11.4.3 StringBuffer类的类的charAt、setCharAt、getChars、reverse方法方法Char charAt(intindex)返回此序列中指定索引处的返回此序列中指定索引处的 char 值。值。Void setCharAt(intindex,charch)将给定索引处的字符设置为将给定索引处的字符设置为 ch。Void getChars(intsrcBegin,intsrcEnd,chardst,intdstBegin)将字符从此序列复制到目标字符数组将字符从此序列复制到目标字符数组 d

22、st。StringBuffer reverse()将此字符序列用其反转形式取代。将此字符序列用其反转形式取代。11.4.4 StringBuffer类的类的append方法方法StringBuffer append(booleanb/charc/doubled/floatf/inti/longl)将将 boolean 参数的字符串表示形式追加到序列。参数的字符串表示形式追加到序列。StringBuffer append(charstr)将将 char 数组参数的字符串表示形式追加到此序列。数组参数的字符串表示形式追加到此序列。StringBuffer append(charstr,intoff

23、set,intlen)将将 char 数组参数的子数组的字符串表示形式追加到此序列。数组参数的子数组的字符串表示形式追加到此序列。StringBuffer append(CharSequences)将指定的将指定的 CharSequence 追加到该序列。追加到该序列。StringBuffer append(CharSequences,intstart,intend)将指定将指定 CharSequence 的子序列追加到此序列。的子序列追加到此序列。11.4.4 StringBuffer类的类的append方法方法StringBuffer append(Objectobj)追加追加 Objec

24、t 参数的字符串表示形式。参数的字符串表示形式。StringBuffer append(Stringstr)将指定的字符串追加到此字符序列。将指定的字符串追加到此字符序列。StringBuffer append(StringBuffersb)将指定的将指定的 StringBuffer 追加到此序列中。追加到此序列中。S+=“!”;将执行将执行 s=new StringBuffer().append(s).append(“!”).toString();11.4.5 StringBuffer类的插入和删除方法类的插入和删除方法StringBuffer insert(intoffset,boolea

25、nb/charc/doubled/floatf/inti/longl)将将 boolean 参数的字符串表示形式插入此序列中。参数的字符串表示形式插入此序列中。StringBuffer insert(intoffset,charstr)将将 char 数组参数的字符串表示形式插入此序列中。数组参数的字符串表示形式插入此序列中。StringBuffer insert(intindex,charstr,intoffset,intlen)将数组参数将数组参数 str 的子数组的字符串表示形式插入此序列中。的子数组的字符串表示形式插入此序列中。StringBuffer insert(intoffset

26、,Objectobj)将将 Object 参数的字符串表示形式插入此字符序列中。参数的字符串表示形式插入此字符序列中。StringBuffer insert(intoffset,Stringstr)将字符串插入此字符序列中。将字符串插入此字符序列中。StringBuffer delete(intstart,intend)移除此序列的子字符串中的字符。移除此序列的子字符串中的字符。StringBuffer deleteCharAt(intindex)移除此序列指定位置的移除此序列指定位置的 char。11.5 Character类类 Character类的大多数方法都是静态方法,并且至少有一个字

27、符参数,这些类的大多数方法都是静态方法,并且至少有一个字符参数,这些方法要么执行字符的测试,要么执行字符的操作。方法要么执行字符的测试,要么执行字符的操作。staticboolean isDefined(charch)确定指定字符是否被定义为确定指定字符是否被定义为 Unicode 中的字符。中的字符。staticboolean isDigit(charch)确定指定字符是否为数字。确定指定字符是否为数字。staticboolean isJavaIdentifierStart(charch)确定是否允许将指定字符作为确定是否允许将指定字符作为 Java 标识符中的首字符。(字母、下划线、标识符

28、中的首字符。(字母、下划线、$)staticboolean isJavaIdentifierPart(charch)确定指定字符是否可以是确定指定字符是否可以是 Java 标识符中首字符以外的部分。标识符中首字符以外的部分。staticboolean isLetter(charch)确定指定字符是否为字母。确定指定字符是否为字母。staticboolean isLowerCase(charch)确定指定字符是否为小写字母。确定指定字符是否为小写字母。staticboolean isUpperCase(charch)确定指定字符是否为大写字母。确定指定字符是否为大写字母。staticchar t

29、oLowerCase(charch)staticchar toUpperCase(charch)11.5 Character类类staticchar forDigit(intdigit,intradix)确定使用指定基数的特定数字的字符表示形式。如确定使用指定基数的特定数字的字符表示形式。如果果 radix 的值不是一个有效基数,或者的值不是一个有效基数,或者 digit 的值不是一的值不是一个使用指定基数的有效数字,则返回个使用指定基数的有效数字,则返回 null 字符。字符。如果如果 radix 参数大于或等于参数大于或等于 MIN_RADIX 并且小于或等于并且小于或等于 MAX_RAD

30、IX,则该参数是有效的。如果,则该参数是有效的。如果 0=digitradix,则,则 digit 参数是有效的。参数是有效的。参数:参数:digit-转换为字符的数字。转换为字符的数字。radix-基数。基数。(二进制、八进制、十进制、十六进制等;基数分别为二进制、八进制、十进制、十六进制等;基数分别为2,8,10,16)返回:返回:使用指定基数的指定数字的使用指定基数的指定数字的 char 表示形式。表示形式。例如:例如:digit=13 radix=16 输出结果为:输出结果为:d 11.5 Character类类staticint digit(charch,intradix)返回使用指

31、定基数的字符返回使用指定基数的字符 ch 的值。的值。例如:例如:ch=f radix=16 返回结果为:返回结果为:15(fig11.16)Char charValue()返回此返回此 Character 对象的值。对象的值。Boolean equals(Objectobj)将此对象与指定对象比较。将此对象与指定对象比较。String toString()返回表示此返回表示此 Character 值的值的 String 对象。对象。11.6 StringTokenizer类类string tokenizer 类允许应用程序将字符串分解为标记。类允许应用程序将字符串分解为标记。Boolean

32、hasMoreTokens()测试此测试此 tokenizer 的字符串中是否还有更多的可用标记。的字符串中是否还有更多的可用标记。String nextToken()返回此返回此 string tokenizer 的下一个标记。的下一个标记。StringTokenizer st=new StringTokenizer(this is a test);while(st.hasMoreTokens()System.out.println(st.nextToken();输出以下字符串:输出以下字符串:this is a test 11.7 正则表达式正则表达式(1):用来匹配字符串的开始。:用来匹

33、配字符串的开始。(2)$:用来匹配字符串的结束。:用来匹配字符串的结束。(3)*:用来表示一个字符可以出现零次或者多次。:用来表示一个字符可以出现零次或者多次。(4)+:用来表示一个字符可以出现一次或者多次。:用来表示一个字符可以出现一次或者多次。(5)?:用来表示一个字符可以出现零次或者一次。:用来表示一个字符可以出现零次或者一次。例如:编写一个判断自定义注册码是否符合规范的例子,例如:编写一个判断自定义注册码是否符合规范的例子,要求注册码的规则是以软件注册号要求注册码的规则是以软件注册号6204开头,以脚本号开头,以脚本号3517结尾、中间加入版本代码结尾、中间加入版本代码8(可有可无,可

34、多可少)、(可有可无,可多可少)、分隔符分隔符(-)、机器码、机器码x(至少一个机器码)、加码(至少一个机器码)、加码y(一个(一个或者零个)。或者零个)。62048*-x+y?3517$11.7 正则表达式正则表达式(1):方括号表达式:方括号表达式,格式:格式:字母表字母表,表示任选一个。表示任选一个。(2):可以限定字符出现的个数。:可以限定字符出现的个数。(3)|:表示或者,相当于:表示或者,相当于OR的作用。的作用。例如:例如:(1)a-z:表示任选一个小写字母。:表示任选一个小写字母。(2)a-zA-Z_$:匹配所有的字母和下划线。匹配所有的字母和下划线。(3)a-zA-Z3$:匹

35、配所有的匹配所有的3个字母的字符串。个字母的字符串。(4)a$:只能匹配一个字母只能匹配一个字母a。(5)a4$:只能匹配只能匹配aaaa。(6)a2,4$:只能匹配只能匹配aa,aaa或或aaaaa。(7)a2,4:匹配:匹配baaa,ccaaaab等。等。(8)0-9$|xX$:由数字结束或者由由数字结束或者由x结束或者以结束或者以X结束结束的字符串。的字符串。11.7 正则表达式正则表达式 11.8.1 替换子字符串和分割字符串替换子字符串和分割字符串String replaceAll(Stringregex,Stringreplacement)使用给定的使用给定的 replacemen

36、t 字符串替换此字符串匹配字符串替换此字符串匹配给定的正则表达式的每个子字符串。给定的正则表达式的每个子字符串。String replaceFirst(Stringregex,Stringreplacement)使用给定的使用给定的 replacement 字符串替换此字符串匹配字符串替换此字符串匹配给定的正则表达式的第一个子字符串。给定的正则表达式的第一个子字符串。String split(Stringregex)根据给定的正则表达式的匹配来拆分此字符串。根据给定的正则表达式的匹配来拆分此字符串。11.8.2 Pattern类和类和Matcher类类 Pattern类类:staticPattern compile(Stringregex)将给定的正则表达式编译到模式中。将给定的正则表达式编译到模式中。Matcher matcher(CharSequenceinput)创建匹配给定输入与此模式的匹配器。创建匹配给定输入与此模式的匹配器。类类 Matcher:Boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。尝试查找与该模式匹配的输入序列的下一个子序列。String group()返回由以前匹配操作所匹配的输入子序列。返回由以前匹配操作所匹配的输入子序列。

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

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

本站为文档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