字符串回顾•阅读下面代码,哪个有错误?说明理由•填代码:逆序输出数组中的元素double[]a=newdouble[];double[]a=newdouble[5]{1,2,3,4,5,};doublea={1,2,3,4,5};int[]a=newint[]{1,2,3,4,5};for(_______________;________;____){System.out.println(a[i]);}inti=a.length-1i=0i--×××本章任务•实现学员注册密码验证•打印学员成绩单•实现文件名和邮箱ID的合法性验证•掌握String的基本用法–如何定义、初始化字符串–如何访问字符串长度–如何比较、连接、提取字符串•会使用StringBuffer类的方法对字符串进行操作本章目标无处不在的字符串•生活中的字符串•使用String对象存储字符串•String类位于java.lang包中,具有丰富的方法–计算字符串的长度–连接字符串–比较字符串–提取字符串频繁使用的字符串“有志者事竟成”“离奥运会开幕还有380天”“教育改变生活”Strings=有志者事竟成;Strings=newString(有志者事竟成);字符串长度importjava.util.*;publicclassNameTest{publicstaticvoidmain(String[]args){System.out.print(请随机输入你想到的名字:);Scannerinput=newScanner(System.in);Stringname=input.next();System.out.println(这个名字的长度是:\+name.length()+\);}随机输入你心中想到的一个名字,然后输出它的字符串长度调用字符串的length()方法可以获得字符串的长度要想打印输出引号(),必须在字符串中使用转义序列\演示示例1:演示计算字符串的长度字符串长度•计算字符串长度字符串长度调用length()方法获得返回字符串中的字符数调用方法:字符串标识符.length();方法原型:publicintlength(){}字符串比较两个学员输入各自最喜欢的课程名称,判断是否一致//判断课程名称是否相同if(favCourse1.equals(favCourse2)){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}比较两个字符串是否相等演示示例2:演示比较字符串字符串比较•equals()方法比较原理•输入的“Java”和“java”代表同一课程,如何解决?–使用equalsIgnoreCase()方法–结合toUpperCase()或toLowerCase()字符串1字符串2检查组成字符串内容的字符是否完全一致字符串比较使用equalsIgnoreCase()方法解决比较时忽略大小写形式if(favCourse1.equalsIgnoreCase(favCourse2)){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}字符串比较结合toUpperCase()方法解决Java使用toUpperCase()方法JAVAJava使用toLowerCase()方法javaif(favCourse1.toUpperCase().equals(favCourse2.toUpperCase())){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}小结1学员进行入学注册,输入两次密码,如果相同,提示注册成功,如果不相同,提示重新输入密码选用哪个方法更合适?参考代码字符串连接•方法1:使用“+”•方法2:使用String类的concat()方法你好,张三!Strings=newString(你好,);Stringname=newString(张三!);Stringsentence=s.concat(name);System.out.println(sentence);输出结果字符串常用提取方法使用作业提交系统提交Java作业,输入java源代码文件名,并输入自己的邮箱,提交前对Java文件名以及邮箱有效性进行检查。编码实现合法的文件名应该以.java结尾合法的邮箱名中至少要包含“@”和“.”,并检查“@”是否在“.”之前字符串常用提取方法•常用提取方法举例方法说明publicintindexOf(intch)搜索第一个出现的字符ch(或字符串value)publicintindexOf(Stringvalue)publicintlastIndexOf(intch)搜索最后一个出现的字符ch(或字符串value)publicintlastIndexOf(Stringvalue)返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回-1青春无悔0123位置演示示例4:演示常用字符串提取方法字符串常用提取方法方法说明publicStringsubstring(intindex)提取从位置索引开始的字符串部分publicStringsubstring(intbeginindex,intendindex)提取beginindex和endindex之间的字符串部分publicStringtrim()返回一个前后不含任何空格的调用字符串的副本字符串常用提取方法//检查Java文件名intindex=fileName.lastIndexOf(.);if(index!=-1&&index!=0&&fileName.substring(index+1,fileName.length()).equals(java)){fileCorrect=true;}else{System.out.println(文件名无效。);}//检查你的邮箱格式if(email.indexOf('@')!=-1&&email.indexOf('.')email.indexOf('@')){emailCorrect=true;}else{System.out.println(Email无效。);}完整代码演示演示示例5:演示作业提交系统作业提交系统小结2如果要打印输出“小鱼儿”,应填入的代码是什么?Stringword=Hello,;word=word.trim();Strings=word.concat(小鱼儿!);intindex1=s.indexOf(',');intindex2=s.indexOf('!');System.out.println(s.substring(______,_______));index1+1index2带参数的方法应用输入学期代码,输出该学期的课程信息if(courseCode.equalsIgnoreCase(s1)){System.out.println(第一学期的课程是:);for(inti=0;is1Course.length;i++){System.out.println(s1Course[i]);}}elseif(courseCode.equalsIgnoreCase(s2)){System.out.println(第二学期的课程是:);for(inti=0;is2Course.length;i++){System.out.println(s2Course[i]);}}elseif(courseCode.equalsIgnoreCase(y2)){System.out.println(第三学期的课程是:);for(inti=0;iy2Course.length;i++){System.out.println(y2Course[i]);}}重复代码:实现相同的功能“根据不同的课程代号输出相应课程信息”使用方法可以增加代码重用完整代码演示带参数的方法应用更高效的代码publicclassSchool{publicvoidcourseInfo(intcourseCode,String[]course){System.out.println(courseCode+的课程是:);for(inti=0;icourse.length;i++){System.out.println(course[i]);}}}Shoolschool=newSchool();school.courseInfo(courseCode,s1);调用courseInfo方法,并传入相应的课程代号和课程信息数组完整代码演示StringBuffer•StringBuffer:String增强版•StringBuffer声明•StringBuffer的使用StringBuffersb=newStringBuffer();StringBuffersb=newStringBuffer(aaa);创建空字符串创建一个变量存储字符串aaasb.toString();//转化为String类型sb.append(**);//追加字符串StringBuffer的用武之地//声明课程信息字符串StringBuffercourse=newStringBuffer();System.out.println(请输入S1课程信息:);Scannersc=newScanner(System.in);//循环从键盘接收字符串Stringinput;while(!(input=sc.next()).equals(#)){course.append(input);course.append(\n);}System.out.println(s1的课程信息是:+course);定义StringBuffer的实例,存储课程字符串循环追加字符,使用StringBuffer,效率高!从控制台接收课程信息,不断累加直到输入“#”键结束,并输出全部课程信息完整代码演示Java语言特点总结•简单易学•丰富且功能强大的类库(JavaDoc——我们的法宝)–java.lang.*:提供利用Java编程语言进行程序设计的基础类–java.util.*:提供集合框架,Collection类,日期,实用工具等类–java.io.*:提供强大的系统输入和输出–javax.sql.*:–javax.xml.*:–……•提供强大的网络支持(后续课程:JavaOOP、JSPB/S开发技术)总结•如何定义一个String类的实例?•使用什么方法可以实现以下功能:–获得字符串的长度–在原始字符串后追加另一个字符串–如何比较两个字符串的内容是否相等•如何定义和使用带参数的方法?•使用StringBuffer的优点是什么?