Date:January23,2020字符串的使用计算机科学技术系冯君软件技术教研室Date:January23,2020回顾•阅读下面代码,哪个有错误?说明理由•填代码:逆序输出数组中的元素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--×××Date:January23,2020无处不在的字符串•生活中的字符串•使用String对象存储字符串•String类位于java.lang包中,具有丰富的方法–计算字符串的长度–连接字符串–比较字符串–提取字符串频繁使用的字符串“有志者事竟成”“离奥运会开幕还有380天”“教育改变生活”Strings=有志者事竟成;Strings=newString(有志者事竟成);Date:January23,2020字符串长度importjava.util.*;publicclassHelloAccp1{publicstaticvoidmain(String[]args){System.out.print(请随机输入你想到的名字:);Scannerinput=newScanner(System.in);Stringname=input.next();System.out.println(这个名字的长度是:\+name.length()+\);}随机输入你心中想到的一个名字,然后输出它的字符串长度调用字符串的length()方法可以获得字符串的长度要想打印输出引号(),必须在字符串中使用转义序列\Date:January23,2020字符串长度•计算字符串长度字符串长度调用length()方法获得返回字符串中的字符数调用方法:字符串标识符.length();方法原型:publicintlength(){}Date:January23,2020字符串比较两个学员输入各自最喜欢的课程名称,判断是否一致//判断课程名称是否相同if(favCourse1.equals(favCourse2)){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}比较两个字符串是否相等Date:January23,2020字符串比较•equals()方法比较原理•输入的“Java”和“java”代表同一课程,如何解决?–使用equalsIgnoreCase()方法–结合toUpperCase()或toLowerCase()字符串1字符串2检查组成字符串内容的字符是否完全一致Date:January23,2020字符串比较使用equalsIgnoreCase()方法解决比较时忽略大小写形式if(favCourse1.equalsIgnoreCase(favCourse2)){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}Date:January23,2020字符串比较结合toUpperCase()方法解决Java使用toUpperCase()方法JAVAJava使用toLowerCase()方法javaif(favCourse1.toUpperCase().equals(favCourse2.toUpperCase())){System.out.println(最喜欢的课程相同);}else{System.out.println(最喜欢的课程不相同);}Date:January23,2020小结1学员进行入学注册,输入两次密码,如果相同,提示注册成功,如果不相同,提示重新输入密码选用哪个方法更合适?Date:January23,2020字符串连接令狐冲的三门课成绩如表所示,输出他的成绩单学科成绩SQL80Java90HTML86.7publicstaticvoidmain(String[]args){intsqlScore=80;//sql成绩intjavaScore=90;//java成绩doublehtmlScore=86.7;//html成绩//创建成绩单StringscoreSheet=SQL:+sqlScore+\tJava:+javaScore+\tHTML:+htmlScore;//打印成绩单System.out.println(*****令狐冲成绩单*****);System.out.println(scoreSheet);}“+”连接字符串数值型变量自动转换成String类型Date:January23,2020字符串连接•方法1:使用“+”•方法2:使用String类的concat()方法你好,张三!Strings=newString(你好,);Stringname=newString(张三!);Stringsentence=s.concat(name);System.out.println(sentence);输出结果A.concat(B):B字符串将被连接到A字符串后面Date:January23,2020字符串常用提取方法使用作业提交系统提交Java作业,输入java源代码文件名,并输入自己的邮箱,提交前对Java文件名以及邮箱有效性进行检查。编码实现合法的文件名应该以.java结尾合法的邮箱名中至少要包含“@”和“.”,并检查“@”是否在“.”之前Date:January23,2020字符串常用提取方法•常用提取方法举例方法说明publicintindexOf(intch)搜索第一个出现的字符ch(或字符串value)publicintindexOf(Stringvalue)publicintlastIndexOf(intch)搜索最后一个出现的字符ch(或字符串value)publicintlastIndexOf(Stringvalue)返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回-1青春无悔0123位置演示示例4:演示常用字符串提取方法Date:January23,2020字符串常用提取方法方法说明publicStringsubstring(intindex)提取从位置索引开始的字符串部分publicStringsubstring(intbeginindex,intendindex)提取beginindex和endindex之间的字符串部分publicStringtrim()返回一个前后不含任何空格的调用字符串的副本beginindex:字符串的位置从0开始算;endindex:字符串的位置从1开始算Date:January23,2020字符串常用提取方法//检查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无效。);}作业提交系统Date:January23,2020小结2如果要打印输出“小鱼儿”,应填入的代码是什么?Stringword=Hello,;word=word.trim();Strings=word.concat(小鱼儿!);intindex1=s.indexOf(',');intindex2=s.indexOf('!');System.out.println(s.substring(______,_______));index1+1index2Date:January23,2020StringBuffer•StringBuffer:String增强版•StringBuffer声明•StringBuffer的使用StringBuffersb=newStringBuffer();StringBuffersb=newStringBuffer(aaa);创建空字符串创建一个变量存储字符串aaasb.toString();//转化为String类型sb.append(**);//追加字符串Date:January23,2020StringBuffer的用武之地//声明课程信息字符串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,效率高!从控制台接收课程信息,不断累加直到输入“#”键结束,并输出全部课程信息Date:January23,2020Java语言特点总结•简单易学•丰富且功能强大的类库(JavaDoc——我们的法宝)–java.lang.*:提供利用Java编程语言进行程序设计的基础类–java.util.*:提供集合框架,Collection类,日期,实用工具等类–java.io.*:提供强大的系统输入和输出–javax.sql.*:–javax.xml.*:–……•提供强大的网络支持(后续课程:JavaOOP、JSPB/S开发技术)Date:January23,2020总结•如何定义一个String类的实例?•使用什么方法可以实现以下功能:–获得字符串的长度–在原始字符串后追加另一个字符串–如何比较两个字符串的内容是否相等•使用StringBuffer的优点是什么?