资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,九章,字符串,回顾,阅读下面代码,哪个有错误?说明理由,填代码:逆序输出数组中的元素,double a=new double;,double a=new double51,2,3,4,5,;,double a=1,2,3,4,5;,int,a=new,int,1,2,3,4,5;,for(_;_;_),System.out.println(ai,);,int,i=,a.length,-1,i=0,i-,2,预习检查,如何定义一个字符串?,使用什么方法可以获得字符串的长度?,如何定义一个,StringBuffer,类的对象?,3,本章任务,升级,Java,应用程序“,HelloAccp,”,:,实现学员注册密码验证,打印学员成绩单,实现文件名和邮箱,ID,的合法性验证,4,掌握,String,的基本用法,如何定义、初始化字符串,如何访问字符串长度,如何比较、连接、提取字符串,会使用带参数的方法,会使用,StringBuffer,类的方法对字符串进行操作,本章目标,5,无处不在的字符串,生活中的字符串,使用,String,对象存储字符串,String,类位于,java.lang,包中,具有丰富的方法,计算字符串的长度,连接字符串,比较字符串,提取字符串,频繁使用的字符串,“有志者事竟成”,“离奥运会开幕还有,380,天”,“教育改变生活”,String s=,有志者事竟成,;,String s=,new,String(,有志者事竟成,);,6,字符串长度,2-1,package s1java.sg.chap9;,import,java.util,.*;,public class HelloAccp1,public static void,main(String,args,),System.out.print,(,请随机输入你想到的名字:,);,Scanner input=new,Scanner(System.in,);,String name=,input.next,();,System.out.println,(,这个名字的长度是,:,+,name.length,(),+,);,随机输入你心中想到的一个名字,然后输出它的字符串长度,调用字符串的,length(),方法可以获得字符串的长度,要想打印输出引号,(”),,必须在字符串中使用转义序列,”,演示示例,1,:,演示计算字符串的长度,7,字符串长度,2-2,计算字符串长度,字符串,长度,调用,length(),方法获得,返回字符串中的字符数,调用方法,:,字符串标识符,.length();,方法原型,:,public,int,length(),8,字符串比较,4-1,两个学员输入各自最喜欢的课程名称,判断是否一致,/,判断课程名称是否相同,if(favCourse1,.equals(,favCourse2,),),System.out.println,(,最喜欢的课程相同,);,else,System.out.println,(,最喜欢的课程不相同,);,比较两个字符串是否相等,演示示例,2,:,演示比较字符串,9,字符串比较,4-2,equals(),方法比较原理,输入的“,Java”,和“,java”,代表同一课程,如何解决?,使用,equalsIgnoreCase,(),方法,结合,toUpperCase,(),或,toLowerCase,(),字符串,1,字符串,2,检查组成字符串内容的字符是否完全一致,10,字符串比较,4-3,使用,equalsIgnoreCase,(),方法解决,比较时忽略大小写形式,if(favCourse1.,equalsIgnoreCase,(favCourse2),System.out.println,(,最喜欢的课程相同,);,else,System.out.println,(,最喜欢的课程不相同,);,11,字符串比较,4-4,结合,toUpperCase,(),方法解决,Java,使用,toUpperCase,(,),方法,JAVA,Java,使用,toLowerCase,(,),方法,java,if(favCourse1,.toUpperCase().equals(,favCourse2,.toUpperCase(),),System.out.println,(,最喜欢的课程相同,);,else,System.out.println,(,最喜欢的课程不相同,);,12,小结,1,学员进行入学注册,输入两次密码,如果相同,提示注册成功,如果不相同,提示重新输入密码,选用哪个方法更合适?,参考代码,13,字符串连接,2-1,令狐冲的,Java,成绩如表所示,输出他的成绩单,学科,成绩,SQL,80,Java,90,HTML,86.7,public static void,main(String,args,),int,sqlScore,=80;/,sql,成绩,int,javaScore,=90;/java,成绩,double,htmlScore,=86.7;/html,成绩,/,创建成绩单,String,scoreSheet,=,SQL:,+,sqlScore,+,Java:,+,javaScore,+,HTML:,+,htmlScore,;,/,打印成绩单,System.out.println,(*,令狐冲成绩单*,);,System.out.println(scoreSheet,);,“,+”,连接字符串,String,scoreSheet,=SQL:t+,sqlScore,+,nJava:t,+,javaScore,+,nHTML:t,+,htmlScore,;,演示示例,3,:,演示连接字符串输出成绩单,数值型变量自动转换成,String,类型,14,字符串连接,2-2,方法,1,:使用“,+”,方法,2,:使用,String,类的,concat,(),方法,你好,张三!,String s=new String(,你好,,);,String name=new String(,张三!,);,String sentence=,s.concat(name,),;,System.out.println(sentence,);,输出结果,A.concat(B,),:,B,字符串将被连接到,A,字符串后面,15,字符串常用提取方法,4-1,使用作业提交系统提交,Java,作业,输入,java,源代码文件名,并输入自己的邮箱,提交前对,Java,文件名以及邮箱有效性进行检查。编码实现,合法的文件名应该以,.java,结尾,合法的邮箱名中至少要包含“,”,和“,.”,并检查“,”,是否在“,.”,之前,16,字符串常用提取方法,4-2,常用提取方法举例,方法,说明,public,int,indexOf,(int,ch,),搜索第一个出现的字符,ch,(或字符串,value,),public,int,indexOf,(String,value),public,int,lastIndexOf,(int,ch,),搜索最后一个出现的字符,ch,(或字符串,value,),public,int,lastIndexOf,(String,value),返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回,-1,青,春,无,悔,0 1 2 3,位置,演示示例,4,:演示常用字符串提取方法,17,字符串常用提取方法,4-3,方法,说明,public String,substring,(int,index),提取从位置索引开始的字符串部分,public String,substring,(int,beginindex,int,endindex,),提取,beginindex,和,endindex,之间的字符串部分,public String,trim,(),返回一个前后不含任何空格的调用字符串的副本,beginindex,:,字符串的位置从,0,开始算;,endindex,:,字符串的位置从,1,开始算,18,字符串常用提取方法,4-4,/,检查,Java,文件名,int,index=,fileName.lastIndexOf,(.);,if,(,index,!=-1&index!=0&fileName.substring(index+1,fileName.length().equals(java,),),fileCorrect,=,true,;,else,System.out.println,(,文件名无效。,);,/,检查你的邮箱格式,i,f,(,email.indexOf,(),!=-,1&,email.indexOf,(.),email.indexOf,(),),emailCorrect,=,true,;,else,System.out.println(Email无效,。);,完整代码演示,演示示例,5,:,演示作业提交系统,作业提交系统,19,小结,2,如果要打印输出“小鱼儿”,应填入的代码是什么?,String word=Hello,;,word=,word.trim,();,String s=,word.concat,(,小鱼儿,!);,int,index1=,s.indexOf,(,);,int,index2=,s.indexOf,(!);,System.out.println(s.substring,(_,_);,index1+1,index2,20,带参数的方法就在身边,public String,concat,(String,str,),public,int,indexOf,(String value),public String substring (,int,index),方法实施时需要接收某个值进行处理,返回值类型,方法名,参数,21,为什么要用带参数的方法,工作原理,新鲜桃汁,新鲜苹果汁,新鲜梨汁,输出三种果汁,22,如何使用带参数的方法,定义带参数的方法,调用带参数的方法,public class,Zhazhi,/,定义带参数的,zhazhi,方法,public,String,zhazhi,(,String fruit,),String juice=fruit+,汁,;,return,juice;,/*,调用,zhazhi,方法*,/,Zhazhi,myZhazhi,=new,Zhazhi,();,String,myFruit,=,苹果,;,String,myJuice,=,myZhazhi.zhazhi(myFruit,),;,System.out.println(myJuice,);,参数列表:,(,数据类型 参数,1,,数据类型 参数,2),调用方法,传递的参数要与参数列表一一对应,完整代码演示,完整代码演示,演示示例,6,:演示运行效果,23,带参数的方法应用,2-1,输入学期代码,输出该学期的课程信息,if,(courseCode.equalsIgnoreCase(s1),System.,out,.println,(,第一学期的课程是:,);,for,(,int,i=0;i s1Course.length;i+),System.out.println(s1Coursei);,else if,(courseCode.equalsIgnoreCase(s2),System.,out,.println,(,第二学期的课程是:,);,for,(,int,i=0;i s2Course.length;i+),System.out.println(s2Coursei);,else if,(courseCode.equalsIgnoreCase(y2),System.,out,.println,(,第三学期的课程是:,);,for,(,int,i=0;i y2Course.length;i+),System.out.println(y2Coursei);,重复代码:,实现相同的功能“根据不同的课程代号输出相应课程信息”,使用方法可以增加代码重用,完整代码演示,24,带参数的方法应用,2-2,更高效的代码,public class,AccpSchool,public void,courseInfo(,int,courseCode,String,course),System.out.println(courseCode,+,的课程是,:);,for,(,int,i=0;i,course.length,;i+),System.out.println(coursei,);,定义,AccpSchool,类的带参方法:输出课程信息,AccpShool,school=new,AccpSchool,();,school.courseInfo(courseCode,s1);,调用,courseInfo,方法,并传入相应的课程代号和课程信息数组,完整代码演示,演示示例,7,:使用断点跟踪演示带参数的方法调用过程,25,小结,3,实现,MP3,播放器:,1,)播放录入的音乐名称,2,)外放正在播放的歌曲,完整代码,26,StringBuffer,StringBuffer,:,String,增强版,StringBuffer,声明,StringBuffer,的使用,StringBuffer,sb,=,new,StringBuffer,();,StringBuffer,sb,=,new,StringBuffer(,aaa,);,创建空字符串,创建一个变量存储字符串,aaa,sb.,toString,(),;/,转化为,String,类型,sb.,append,(,*,),;/,追加字符串,27,StringBuffer,的用武之地,/,声明课程信息字符串,StringBuffer,course=new,StringBuffer,();,System.out.println,(,请输入,S1,课程信息:,);,Scanner sc=new,Scanner(System.,in,);,/,循环从键盘接收字符串,String input;,while(!(input,=,sc.next().equals,(#),course.append(input,);,course.append(n,);,System.out.println(s1,的课程信息是:,+course);,定义,StringBuffer,的实例,存储课程字符串,循环追加字符,使用,StringBuffer,,效率高!,从控制台接收课程信息,不断累加直到输入“,#”,键结束,并输出全部课程信息,完整代码演示,28,Java,语言特点总结,简单易学,丰富且功能强大的类库,(Java Doc,我们的法宝,),java.lang,.*,:,提供利用,Java,编程语言进行程序设计的基础类,java.util,.*,:,提供集合框架,,Collection,类,日期,实用工具等类,java.io,.*,:,提供强大的系统输入和输出,javax.sql,.*,:,javax.xml,.*,:,提供强大的网络支持(后续课程:深入,OOP,、,JSP B/S,开发技术),29,总结,如何定义一个,String,类的实例?,使用什么方法可以实现以下功能:,获得字符串的长度,在原始字符串后追加另一个字符串,如何比较两个字符串的内容是否相等,如何定义和使用带参数的方法?,使用,StringBuffer,的优点是什么?,30,Thank you,31,
展开阅读全文