Java程序设计 005第五章字符串类_第1页
Java程序设计 005第五章字符串类_第2页
Java程序设计 005第五章字符串类_第3页
Java程序设计 005第五章字符串类_第4页
Java程序设计 005第五章字符串类_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、计 算 机 科 学 学 院夏 羽Java程序设计基于Java语言的面向对象程序设计第二部分Java面向对象编程Java程序设计第五章 字符串类第一节 什么是字符串?Java程序设计无处不在的字符串生活中的字符串生活中见到的文字,几乎都是字符串。程序中的字符串我们在电脑中,能看见的文字,几乎背后都是字符串。字符串在软件开发中,几乎是必不可少的。 频繁使用的字符串 “欢迎进入欢迎进入” “Hello World” “知识就是力量知识就是力量”Java中的字符串类StringString类位于java.lang包中,具有丰富的方法计算字符串的长度、比较字符串、连接字符串、提取字符串如何新建一个字符串

2、对象?Java中任何对象都能通过其toString()方法转换成字符串进行输出,方便调试。String s = Hello World;String s = new String(Hello World);String s = new String();第五章 字符串类第二节 Java字符串的操作Java程序设计字符串长度 1 String类提供了length()方法,获得字符串的长度 。 在用户注册的时候,出于安全性的考虑,一般会限制用户密码的最小字符数,例如我们想实现当用户提供的密码少于六位字符时,提示用户重新输入。问题问题分析分析字符串长度 2 计算字符串长度“Hello World”

3、字符串长度长度调用length() 方法获得返回字符串中的字符数调用方法:字符串标识符.length();方法原型:public int length();语法语法演示:获取字符串长度主意:Java返回的字符串长度是以Unicode字符为基础计算的。(一个中文汉字算一个字符)字符串比较 1 String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致。 注册成功后,实现登录验证。用户名为“TOM”,密码为“1234567” 问题问题分析分析字符串比较 2 equals()方法比较原理 “=”和equals()有什么区别呢?字符串 1字符串 2equals():检查组成字符

4、串内容的字符是否完全一致str1str2BDQN0 x2a486c0 x2a486cBDQNstr1=str2 ?true0 x2aac83str1=str2 ?false=:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象问题问题字符串比较 3 使用equalsIgnoreCase()方法 使用toLowerCase()方法 使用toUpperCase( )方法登录时一般不考虑用户名的大小写问题,实现登录 问题问题分析分析演示:比较字符串学科学科成绩成绩SQL80Java90HTML86字符串连接 1某学生的成绩如表所示,请统计平均成绩。最后输出他的成绩单。问题问题演示:字符串连

5、接int sqlScore = 80; /sql成绩int javaScore = 90; /java成绩int htmlScore = 86; /html成绩String scoreSheet = SQL: + sqlScore + Java: + javaScore + HTML: + htmlScore; 字符串连接 2 方法1:使用“+” 方法2:使用String类的concat()方法你好,张三!你好,张三!String s = new String(你好,);String name = new String(张三!);String sentence = s.concat(name)

6、;System.out.println(sentence);输出结果A.concat(B):B字符串将被连接到字符串将被连接到A字符串后面字符串后面数值型变量自动数值型变量自动转换转换成成String类型类型第五章 字符串类第二节 Java字符串的提取Java程序设计字符串常用提取方法 1 合法的邮箱名中至少要包含“”和“.” 并且“”是否在“.”之前 “”不能是首个字符 “.”不能是最后一个字符 “”只能出现一次 如何判断用户输入的邮箱格式是否正确?问题问题分析分析 方 法说 明 public int indexOf(int ch) 搜索第一个出现的字符ch(或字符串value)public

7、 int indexOf(String value)public int lastIndexOf(int ch) 搜索最后一个出现的字符ch(或字符串value)public int lastIndexOf(String value)字符串常用提取方法 2 常用提取方法青青春春无无悔悔0 1 2 3 位置返回出现第一个匹配的位置 如果没有找到字符或字符串,则返回-1方 法 说 明public String substring(int index)提取从位置索引开始的字符串部分public String substring(int beginindex, int endindex)提取begin

8、index和endindex之间的字符串部分public String trim()返回一个前后不含任何空格的调用字符串的副本字符串常用提取方法 3beginindex: 字符串的位置从0开始算;endindex: 字符串的位置从1开始算 常用提取方法字符串常用提取方法 4int indexOfAt = email.indexOf();int indexOfAt = email.indexOf();int int indexOfDot = email.indexOf(.);indexOfDot = email.indexOf(.);if(indexOfAt if(indexOfAt 0 &am

9、p; indexOfDot 0 & indexOfDot indexOfAt) indexOfDot indexOfAt) emailCorrect emailCorrect = true; = true; / /标识标识E-mailE-mail正确正确 检查邮箱格式示例示例演示:检查邮箱格式字符串常用提取方法 5 中国手机号为11位,其中运营商由前三位号码确定。 中国手机运营商一共3个(虚拟运营商除外),三个运营商拥有不同的号段: 移动:134、135、136、137、138、139、150、151、152、157、158、159、187、188 联通:130、131、132、155

10、、156、185、186 电信:180、189、133、153用户输入手机号,如何判断用户属于哪个运营商?问题问题分析分析字符串常用提取方法 6String prefix = phoneNumber.substring(0, 3);/String cmcc, String unicom, String telecom /String cmcc, String unicom, String telecom 存储号段的数组存储号段的数组if(isInArray(prefix, cmcc) result = China Mobile; else if(isInArray(prefix, unicom

11、) result = China Unicom; else if(isInArray(prefix, telecom) result = China Telecom;判断手机号的运营商示例示例演示:判断手机号的运营商思考 String word = Hello, ;word = word.trim();String s = word.concat(小鱼儿!);int index1 = s.indexOf(,);int index2 = s.indexOf(!);System.out.println(s.substring(_, _);index1+1index2如果要打印输出“小鱼儿”,应填入

12、的代码是什么?代码阅读代码阅读字符串拆分 1 String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回有一段歌词,每句都以空格“ ”结尾,请将歌词每句按行输出 问题问题分析分析public class Lyric public static void main(String args) String words=长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山; String printword=new String100; System.out.println(*原歌词格式*n+words); System.out.println(n*拆分后歌词格式

13、*); printword=words.split( ); for(int i=0;iprintword.length;i+) System.out.println( printwordi ); 字符串拆分 2拆分字符串拆分字符串,返回返回值为字符串数组值为字符串数组遍历输出字符串遍历输出字符串示例示例演示:字符串拆分第五章 字符串类第三节 String类的注意事项Java程序设计字符串的创建 在Java执行时会维护一个String池(Pool),当直接在程序中使用“”来包括一个字符串时,该字符串就会在String池中。 对于一些可以共享的字符串对象,会先在String池中查找是否存在相同的S

14、tring内容(字符相同),如果有就直接返回,而不是直接创造一个新的String对象,以减少内存的耗用。String str1 = “abc”;“abc”str1String str2 = “abc”;str2String str3 = “ABC”;“ABC”str3思考String str1 = “abc”;String str1 = “abc”;String str2 = “abc”;String str2 = “abc”;String str3 = new String(“abc”);String str3 = new String(“abc”);System.out.println(s

15、tr1 = str2);System.out.println(str1 = str2);System.out.println(str1 = str3);System.out.println(str1 = str3);System.out.println(str1 = ern();System.out.println(str1 = ern();在intern()方法被调用时,如果池(Pool)中已经包括了相同的String对象(相同与否由equals()方法决定),那么会从池中返回该字符串,否则原String对象会被加入池中,并返回这个String对象的引用。演示

16、:字符串的创建和intern方法 以下代码执行的结果是什么?字符串的修改 Java中使用字符串有一个非常重要的规则必须记得,一个字符串对象一旦被配置,它的内容就是固定不可变的。 如下代码:中会有两个字符串对象,一个是Victor字符串对象,长度为6;一个是Victoria字符串对象,长度为8,两个是不同的字符串对象。 以上代码并不是在“Victor”字符串对象的值后加上ia字符串,而是让str名称引用从”Victor”字符串对象变为引用“Victoria”字符串对象。String str = “Victor”;String str = “Victor”;str = “Victoria”;str

17、 = “Victoria”;字符串修改实例String message = “The result is”;String message = “The result is”;String result = “”;String result = “”;for(int ifor(int i = 0; i 10000; i+)= 0; i 10000; i+) result += (message + i + “n”);result += (message + i + “n”); 实际上,每执行一次该语句,都会实际上,每执行一次该语句,都会生成一个新的字符串对象,而原来生成一个新的字符串对象,而原来

18、的对象将失效的对象将失效第五章 字符串类第四节 StringBuffer类Java程序设计StringBuffer类 1 StringBuffer:String增强版 每次想改变String对象,都要创建一个新的String对象,效率低 对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率 StringBuffer声明 StringBuffer的使用StringBuffer sb = new StringBuffer();StringBuffer sb = new StringBuffer(aaa);创建空创建空StringBuffer对象对象创建一个变量

19、存储字符串创建一个变量存储字符串aaasb.toString(); /转化为String类型sb.append(*); /追加字符串sb.insert (1, *); /插入字符串public class sbAppend public static void main(String args) StringBuffer sb = new StringBuffer(青春无悔); int num=110; StringBuffer sb1 = sb.append(我心永恒); System.out.println(sb1); StringBuffer sb2 = sb1.append(啊); S

20、ystem.out.println(sb2); StringBuffer sb3 = sb2.append(num); System.out.println(sb3); StringBuffer类 231/39相当于相当于sb3.toString()示例示例StringBuffer类 3 利用StringBuffer类的length()和insert()方法实现需求将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔 问题问题分析分析演示:在数字字符串中加入分隔符StringBuffer和String的对比String message = “The result is”;String message = “The result is”;String result = “”;String result = “”;for(int ifor(int i = 0; i 10000; i+)= 0; i 10000; i+) result += (message + i + “n”);result += (message + i + “n”); String message = “The r

温馨提示

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

评论

0/150

提交评论