版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第11章 字符串和字符,教学目标: 创建和操作不可修改的String类的字符串对象 创建和操作可修改的StringBuffer类的字符串对象 创建和操作Character类的 对象 使用StringTokenizer对象将String对象分解为符号 教学重点: 掌握以上类的具体应用 教学难点: 正则表达式,Class java.lang.String Class java.lang.StringBuffer Class java.lang.Character Class java.util.StringTokenizer Pattern类和Matcher类:Class java.util.re
2、gex,11.1 本章简介,字符是构建Java源程序的基本构建块。字符常量是一个整数值,它表示为单引号中的字符。 字符串由一系列字符构成,将这些字符视为一个单元。字符串可以包含字母、数字和各种特殊字符。字符串是String类的对象。字符串常量(以“匿名”的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,
3、 ( byte ) w, ( byte ) , ( byte ) y, ( byte ) e, ( byte ) a, ( byte ) r ; String s = new String( hello ); / use String constructors 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, 4 ); String s6 = new String( byteArray );,11.3 String类,11.3.2 String类的方法 Int length() 返回此字符串的长度。 Char charAt(intindex) 返回指定索引处的 char 值。 Void getChars(intsrcBegin, intsrcEnd, chardst, intdstBegin) 将字符从此字符串复制到目标字符数组。,11.3.3 字符串比较 String s1 = new String( hello ); / s1 is a copy of hello String s2 =
5、 goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“hello”; 1、boolean equals(ObjectanObject) :比较此字符串与指定的对象。 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 birt
6、hday; String s5=“hello”; 2、=(比较引用时,如果两个对象引用指向内存中的同一个对象,则比较结果为真;否则为假) if ( s1 = hello ) else if ( s5 = hello ) 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”; 3、boolean equalsIgnoreCase(Stri
7、nganotherString) 将此 String 与另一个 String 进行比较,不考虑大小写。 if ( s3.equalsIgnoreCase( s4 ) ) / true output += s3 equals s4n; else output += s3 does 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=“
8、hello”; 4、int compareTo(StringanotherString) 按字典顺序比较两个字符串。 output += pareTo( s2 ) is + pareTo( s2 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s4 ) is + pareTo( s4 ) + pareTo( s3 ) is + pareTo( s3 ) + nn;,String s1 = new String( hello ); / s1 is a copy of hello Strin
9、g s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String s5=“hello”; 5、boolean regionMatches(booleanignoreCase, inttoffset, Stringother, intooffset, intlen):测试两个字符串区域是否相等。 boolean regionMatches(inttoffset, Stringother, intooffset, intlen) :测试两个字符串区域是否相等。 if ( s3.regionMatches(
10、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 match; else output += First 5 characters of s3 and s4 do not match;,6、boolean startsW
11、ith(Stringprefix) 测试此字符串是否以指定的前缀开始。 boolean startsWith(Stringprefix, inttoffset) 测试此字符串是否以指定前缀开始,该前缀以指定索引开始。 boolean endsWith(Stringsuffix) 测试此字符串是否以指定的后缀结束。,11.3.4 定位字符串中的字符和子字符串 int indexOf(intch) 返回指定字符在此字符串中第一次出现处的索引。 Int indexOf(intch, intfromIndex) 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。 Int indexOf
12、(Stringstr) 返回第一次出现的指定子字符串在此字符串中的索引。 Int indexOf(Stringstr, intfromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。,int lastIndexOf(intch) 返回最后一次出现的指定字符在此字符串中的索引。 Int lastIndexOf(intch, intfromIndex) 从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。 Int lastIndexOf(Stringstr) 返回在此字符串中最右边出现的指定子字符串的索引。 Int lastIndexOf
13、(Stringstr, intfromIndex) 从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。 返回的整数是最大值 k,它满足: k = Math.min(fromIndex, str.length() letters.indexOf( “def”, 7 );返回的结果? letters.indexOf( hello );返回的结果? letters.lastIndexOf( “def”, 2); 返回的结果? letters.lastIndexOf( def, 17); 返回的结果?,11.3.5 提取字符串中的子字符串 String substring(
14、intbeginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。 String substring(intbeginIndex, intendIndex) 返回一个新字符串,它是此字符串的一个子字符串。 beginIndex - 开始处的索引(包括)。 endIndex - 结束处的索引(不包括)。,11.3.6 字符串连接及其他方法 String concat(Stringstr) 将指定字符串联到此字符串的结尾。 String replace(charoldChar, charnewChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldC
15、har 而生成的。 String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 char toCharArray() 将此字符串转换为一个新的字符数组。 String trim() 返回字符串的副本,忽略前导空白和尾部空白。,11.3.7 String类的valueOf方法 staticString valueOf(booleanb/ charc/doubled /floatf /inti /longl) 返回 boolean 参数
16、的字符串表示形式。 staticString valueOf(chardata) 返回 char 数组参数的字符串表示形式。 staticString valueOf(chardata, intoffset, intcount) 返回 char 数组参数的特定子数组的字符串表示形式。 staticString valueOf(Objectobj) 返回 Object 参数的字符串表示形式。 (fig11.9),11.4.1 StringBuffer类的构造函数 StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 StringBuffer(CharSe
17、quenceseq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。 StringBuffer(intcapacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。 StringBuffer(Stringstr) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。,11.4.2 StringBuffer类的length、capacity、ensureCapacity方法 int length() 返回长度(字符数)。 int capacity() 返回当前容量。 void setLength(intnewLength) 设置字符序列的长度。 Vo
18、id ensureCapacity(intminimumCapacity) 确保容量至少等于指定的最小值。 (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) 将字符从此序列复制到目标字符数组 dst。 Str
19、ingBuffer reverse() 将此字符序列用其反转形式取代。,11.4.4 StringBuffer类的append方法 StringBuffer append(booleanb/ / charc/doubled /floatf /inti /longl) 将 boolean 参数的字符串表示形式追加到序列。 StringBuffer append(charstr) 将 char 数组参数的字符串表示形式追加到此序列。 StringBuffer append(charstr, intoffset, intlen) 将 char 数组参数的子数组的字符串表示形式追加到此序列。Strin
20、gBuffer append(CharSequences) 将指定的 CharSequence 追加到该序列。 StringBuffer append(CharSequences, intstart, intend) 将指定 CharSequence 的子序列追加到此序列。,11.4 .4 StringBuffer类的append方法 StringBuffer append(Objectobj) 追加 Object 参数的字符串表示形式。 StringBuffer append(Stringstr) 将指定的字符串追加到此字符序列。 StringBuffer append(StringBuff
21、ersb) 将指定的 StringBuffer 追加到此序列中。 S+=“!”; 将执行 s=new StringBuffer().append(s).append(“!”).toString();,11.4.5 StringBuffer类的插入和删除方法 StringBuffer insert(intoffset, booleanb/ charc/doubled /floatf /inti /longl) 将 boolean 参数的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, charstr) 将 char 数组参数的字符串表示形式插入此序列中。
22、 StringBuffer insert(intindex, charstr, intoffset, intlen) 将数组参数 str 的子数组的字符串表示形式插入此序列中。 StringBuffer insert(intoffset, Objectobj) 将 Object 参数的字符串表示形式插入此字符序列中。 StringBuffer insert(intoffset, Stringstr) 将字符串插入此字符序列中。 StringBuffer delete(intstart, intend) 移除此序列的子字符串中的字符。 StringBuffer deleteCharAt(inti
23、ndex) 移除此序列指定位置的 char。,11.5 Character类 Character类的大多数方法都是静态方法,并且至少有一个字符参数,这些方法要么执行字符的测试,要么执行字符的操作。 staticboolean isDefined(charch) 确定指定字符是否被定义为 Unicode 中的字符。 staticboolean isDigit(charch) 确定指定字符是否为数字。 staticboolean isJavaIdentifierStart(charch) 确定是否允许将指定字符作为 Java 标识符中的首字符。(字母、下划线、$) staticboolean is
24、JavaIdentifierPart(charch) 确定指定字符是否可以是 Java 标识符中首字符以外的部分。 staticboolean isLetter(charch) 确定指定字符是否为字母。 staticboolean isLowerCase(charch) 确定指定字符是否为小写字母。 staticboolean isUpperCase(charch) 确定指定字符是否为大写字母。 staticchar toLowerCase(charch) staticchar toUpperCase(charch),11.5 Character类 staticchar forDigit(in
25、tdigit, intradix) 确定使用指定基数的特定数字的字符表示形式。如果 radix 的值不是一个有效基数,或者 digit 的值不是一个使用指定基数的有效数字,则返回 null 字符。 如果 radix 参数大于或等于 MIN_RADIX 并且小于或等于 MAX_RADIX,则该参数是有效的。如果 0=digitradix,则 digit 参数是有效的。 参数: digit - 转换为字符的数字。 radix - 基数。 (二进制、八进制、十进制、十六进制等;基数分别为2,8,10,16) 返回: 使用指定基数的指定数字的 char 表示形式。 例如:digit=13 radix=
26、16 输出结果为:d,11.5 Character类 staticint digit(charch, intradix) 返回使用指定基数的字符 ch 的值。 例如:ch=f radix=16 返回结果为:15 (fig11.16) Char charValue() 返回此 Character 对象的值。 Boolean equals(Objectobj) 将此对象与指定对象比较。 String toString() 返回表示此 Character 值的 String 对象。,11.6 StringTokenizer类 string tokenizer 类允许应用程序将字符串分解为标记。 Bo
27、olean 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):用来匹配字符串的开始。 (2)$:用来匹配字符串的结束。 (3)*:用来表示一个字符可以出现零次或者多次。 (4)+:用来表示一个字符可以出现一次或者多次。 (5)?:用来表示一个字符可以出现零次或者一次。 例如:编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学幼儿园有啥不一样
- 2026年幼儿园档案袋实施计划
- 牛仔童装行业风险投资态势及投融资策略指引报告
- 2026年幼儿园大中小端午节方案
- 2026年幼儿园保育员一日工作流程
- 2026年幼儿园中班认识长方形的课件
- 绿化施工覆土整形方案
- 2026年三月三课件大型幼儿园
- 2026年幼儿园述职报告怎么做的
- 2026重庆飞驶特人力资源管理有限公司招聘派往某市级部门直属事业单位招聘1人笔试题库附答案详解【基础题】
- 2026年新疆兵团第十四师昆玉市高校毕业生“三支一扶”计划招募(137人)笔试参考试题及答案详解
- 2026年广东省中考英语试卷(含答案)
- 2026年新疆维吾尔自治区中考英语试卷(含答案)
- 2026年英语高考题全国二卷知识点+课件+-2027届高三英语一轮复习专项
- 学校改造工程监理细则监理大纲范本
- 2026年高速公路建设行业分析报告及未来发展趋势报告
- 2024苏教版二年级科学下册全册各单元每节课教案汇编(含13个教案)
- 牙科预检分诊工作制度
- 苏州大学《金融会计》2025-2026学年期末试卷
- DB31∕T 1631-2025 卫星健康状态评估指南
- 2025年国企数据招聘笔试真题及答案
评论
0/150
提交评论