《北大青鸟--使用Java理解程序逻辑15》由会员分享,可在线阅读,更多相关《北大青鸟--使用Java理解程序逻辑15(39页珍藏版)》请在金锄头文库上搜索。
1、字符串字符串第十五章第十五章回顾与作业点评回顾与作业点评如何调用带参方法?应注意什么?如何调用带参方法?应注意什么?请说出以下代码的执行过程请说出以下代码的执行过程publicclassTestScore/测试类测试类publicstaticvoidmain(Stringargs)Studentstu=newStudent();Scoresc=newScore();floatavg=0;stu.java=80;stu.database=95;stu.html=77;avg=sc.getAvg(stu);System.out.println(该学生的平均分为:该学生的平均分为:+avg);pub
2、licclassScore/成绩类成绩类/计算平均分,计算平均分,Student为学生类为学生类publicfloatgetAvg(Studentstu)floatavg=0;avg=(stu.java+stu.database+stu.html)/3;returnavg;提问提问提问提问2/39预习检查预习检查如何定义一个字符串?如何定义一个字符串?使用什么方法可以获得字符串的长度?使用什么方法可以获得字符串的长度?如何定义一个如何定义一个StringBuffer类的对象?类的对象?提问提问提问提问3/39本章任务本章任务实现注册信息的有效性验证实现注册信息的有效性验证判断字符出现次数判断字
3、符出现次数格式化显示商品金额格式化显示商品金额4/39本章目标本章目标掌握掌握String类的基本用法类的基本用法会使用会使用=和和equals()比较字符串比较字符串会使用会使用StringBuffer类方法对字符类方法对字符串进行操作串进行操作5/39无处不在的字符串无处不在的字符串生活中的字符串生活中的字符串使用使用String对象存储字符串对象存储字符串String类位于类位于java.lang包中,具有丰富的方法包中,具有丰富的方法计算字符串的长度、比较字符串、连接字符串、提取字符串计算字符串的长度、比较字符串、连接字符串、提取字符串频繁使用的字符串频繁使用的字符串“欢迎进入欢迎进入
4、”“HelloWorld”“教育改变生活教育改变生活”Strings=HelloWorld;Strings=newString(HelloWorld);Strings=newString();6/39字符串长度字符串长度3-1String类提供了类提供了length()方法,确定字符串的方法,确定字符串的长度长度注册注册新用户,要求密码长度不能小于新用户,要求密码长度不能小于6位位问题问题问题问题分析分析分析分析7/39publicclassRegisterpublicstaticvoidmain(Stringargs)Scannerinput=newScanner(System.in);St
5、ringuname,pwd;System.out.print(请输入用户名:请输入用户名:);uname=input.next();System.out.print(请输入密码:请输入密码:);pwd=input.next();if(pwd.length()=6)System.out.print(注册成功!注册成功!); elseSystem.out.print(密码长度不能小于密码长度不能小于6位!位!);字符串长度字符串长度3-2判断密码长度判断密码长度示例示例示例示例演示示例演示示例1:字符串长度:字符串长度8/39字符串长度字符串长度3-3计算字符串长度计算字符串长度“HelloWor
6、ld”字符串字符串长度长度调用调用length()方法获得方法获得返回字符串返回字符串中的字符数中的字符数调用方法调用方法:字符串标识符字符串标识符.length();方法原型方法原型:publicintlength()9/39语法语法语法语法字符串比较字符串比较5-1String类提供了类提供了equals()方法,比较存储在两方法,比较存储在两个字符串对象的内容是否一致个字符串对象的内容是否一致注册注册成功后,实现登录验证。用户名为成功后,实现登录验证。用户名为“TOM”,密码为,密码为“1234567”问题问题问题问题分析分析分析分析10/39publicclassLoginpublic
7、staticvoidmain(Stringargs)Scannerinput=newScanner(System.in);Stringuname,pwd;System.out.print(请输入用户名:请输入用户名:);uname=input.next();System.out.print(请输入密码:请输入密码:);pwd=input.next();if(uname.equals(TOM)&pwd.equals(1234567)System.out.print(登录成功!登录成功!);elseSystem.out.print(用户名或密码不匹配,登录失败!用户名或密码不匹配,登录失败!);字
8、符串比较字符串比较5-2比较用户名和密码是否正确比较用户名和密码是否正确示例示例示例示例演示示例演示示例2:字符串比较:字符串比较11/39equals()方法比较原理方法比较原理“=”和和equals()有什么区别呢?有什么区别呢?字符串比较字符串比较5-3字符串字符串1字符串字符串2equals():检查组成字符串内容的字符是否完全一致检查组成字符串内容的字符是否完全一致str1str2BDQN0x2a486c0x2a486cBDQNstr1=str2?true0x2aac83str1=str2?false=:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象判断两个字符串在内存
9、中的首地址,即判断是否是同一个字符串对象12/39问题问题问题问题字符串比较字符串比较5-4使用使用equalsIgnoreCase()方法方法使用使用toLowerCase()方法方法使用使用toUpperCase()方法方法登录登录时不考虑用户名的大小写问题,实现登录时不考虑用户名的大小写问题,实现登录问题问题问题问题分析分析分析分析13/39publicclassLoginpublicstaticvoidmain(Stringargs)/if()System.out.print(登录成功!登录成功!);elseSystem.out.print(用户名或密码不匹配,登录失败!用户名或密码不
10、匹配,登录失败!);字符串比较字符串比较5-5示例示例示例示例演示示例演示示例3:忽略大小写的字符串比较:忽略大小写的字符串比较14/39uname.toLowerCase().equals(Tom).toLowerCase()&pwd.toUpperCase().equals(1234567).toUpperCase()uname.equals(Tom)&pwd.equals(1234567)uname.equalsIgnoreCase(Tom)&pwd.equalsIgnoreCase(1234567)学员操作学员操作实现会员注册实现会员注册2-1训练要点训练要点String类的使用类的使
11、用带参方法的定义和使用带参方法的定义和使用需求说明需求说明实现会员注册,要求实现会员注册,要求用户名长度不小于用户名长度不小于3密码长度不小于密码长度不小于6注册时两次输入密码注册时两次输入密码必须相同必须相同指导指导指导指导讲解需求说明讲解需求说明15/39学员操作学员操作实现会员注册实现会员注册2-1实现思路实现思路1.创建类创建类Register2.创建验证方法创建验证方法3.调用方法测试程序调用方法测试程序,利用,利用do-while实现注册不成功实现注册不成功循环注册循环注册指导指导指导指导完成时间:完成时间:20分钟分钟publicbooleanverify(Stringname,
12、Stringpwd1,Stringpwd2)16/39共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧共性问题集中讲解共性问题集中讲解共性问题集中讲解共性问题集中讲解17/39学科学科成绩成绩SQL80Java90HTML86.7字符串连接字符串连接2-1某某学生的成绩如表所示学生的成绩如表所示,输出输出他的成绩单他的成绩单问题问题问题问题演示示例演示示例4:字符串连接:字符串连接18/39intsqlScore=80;/sql成绩成绩intjavaScore=90;/java成绩成绩doublehtmlScore=86.7;/htm
13、l成绩成绩StringscoreSheet=SQL:+sqlScore+Java:+javaScore+HTML:+htmlScore;字符串连接字符串连接2-2方法方法1:使用:使用“+”方法方法2:使用:使用String类的类的concat()方法方法你好,张三!你好,张三!Strings=newString(你好,你好,);Stringname=newString(张三!张三!);Stringsentence=s.concat(name);System.out.println(sentence);输出结果输出结果A.concat(B):B字符串将被连接到字符串将被连接到A字符串后面字符串
14、后面数值型变量自动数值型变量自动转换转换成成String类型类型19/39字符串常用提取方法字符串常用提取方法4-1合法的文件名应该以合法的文件名应该以.java结尾结尾合法的邮箱名中至少要包含合法的邮箱名中至少要包含“”和和“.”,并并检查检查“”是否在是否在“.”之前之前判断判断.java文件名是否正确,判断邮箱格式是文件名是否正确,判断邮箱格式是否正确否正确问题问题问题问题分析分析分析分析20/39方方法法说说明明publicintindexOf(intch)搜索第一个出现的字符搜索第一个出现的字符ch(或字符串(或字符串value)publicintindexOf(Stringvalu
15、e)publicintlastIndexOf(intch)搜索最后一个出现的字搜索最后一个出现的字符符ch(或字符串(或字符串value)publicintlastIndexOf(Stringvalue)字符串常用提取方法字符串常用提取方法4-2常用提取方法常用提取方法青青春春无无悔悔0123位置位置返回出现第一个匹配的返回出现第一个匹配的位置位置如果没有找到字符或字符串,则返回如果没有找到字符或字符串,则返回-121/39方方法法 说说明明publicStringsubstring(intindex)提取从位置索引开始的字符提取从位置索引开始的字符串部分串部分publicStringsubs
16、tring(intbeginindex,intendindex)提取提取beginindex和和endindex之间的字符串部之间的字符串部分分publicStringtrim()返回一个前后不含任何空格返回一个前后不含任何空格的调用字符串的副本的调用字符串的副本字符串常用提取方法字符串常用提取方法4-3beginindex:字符串的位置从字符串的位置从0开始算;开始算;endindex:字符串的位置从字符串的位置从1开始算开始算常用提取方法常用提取方法22/39字符串常用提取方法字符串常用提取方法4-4/检查检查Java文件名文件名intindex=fileName.lastIndexOf(
17、.);if(index!=-1&index!=0&fileName.substring(index+1,fileName.length().equals(java)fileCorrect=true;elseSystem.out.println(文件名无效。文件名无效。);/检查邮箱格式检查邮箱格式if(email.indexOf()!=-1&email.indexOf(.)email.indexOf()emailCorrect=true;elseSystem.out.println(Email无效。无效。);检查文件和邮箱格式检查文件和邮箱格式示例示例示例示例演示示例演示示例5:字符串提取:字
18、符串提取23/39小结小结 Stringword=Hello,;word=word.trim();Strings=word.concat(小鱼儿小鱼儿!);intindex1=s.indexOf(,);intindex2=s.indexOf(!);System.out.println(s.substring(_,_);index1+1index2如果要打印输出如果要打印输出“小鱼儿小鱼儿”,应填入的代码,应填入的代码是什么?是什么?代码阅读代码阅读代码阅读代码阅读24/39字符串拆分字符串拆分2-1String类类提提供供了了split()方方法法,将将一一个个字字符符串串分分割为子字符串,结
19、果作为字符串数组返回割为子字符串,结果作为字符串数组返回有有一段歌词,每句都以空格一段歌词,每句都以空格“”结尾,请将结尾,请将歌词每句按行输出歌词每句按行输出问题问题问题问题分析分析分析分析25/39publicclassLyricpublicstaticvoidmain(Stringargs)Stringwords=长亭外长亭外古道边古道边芳草碧连天芳草碧连天晚风扶晚风扶柳笛声残柳笛声残夕阳山外山夕阳山外山;String printword=newString100;System.out.println(*原歌词格式原歌词格式*n+words);System.out.println(n*拆
20、分后歌词格式拆分后歌词格式*);printword=words.split();for(inti=0;i0;i=i-3)str.insert(i,);System.out.print(str);StringBuffer类类4-4从后往前每隔三位添加逗号从后往前每隔三位添加逗号获取长度获取长度示例示例示例示例演示示例演示示例7:StringBuffer类的使用类的使用33/39学员操作学员操作显示商品显示商品批发总金额批发总金额2-1训练要点训练要点StringBuffer类的使用类的使用方法的定义和使用方法的定义和使用需求说明需求说明登录验证通过后,显示批发商品信息登录验证通过后,显示批发商品
21、信息;输入批发商输入批发商品编号和数量,以指定格式显示总金额品编号和数量,以指定格式显示总金额指导指导指导指导讲解需求说明讲解需求说明34/39学员操作学员操作显示商品批发总金额显示商品批发总金额2-2实现思路实现思路1、创建类、创建类Goods2、创建方法、创建方法show()3、创建方法、创建方法change()难点指导难点指导格式化输出格式化输出指导指导指导指导完成时间:完成时间:20分钟分钟publicStringBufferchange(doubled)StringBufferstr=newStringBuffer(String.valueOf(d);for(inti=str.ind
22、exOf(.)-3;i0;i=i-3)str.insert(i,);returnstr;35/39共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧共性问题集中讲解共性问题集中讲解共性问题集中讲解共性问题集中讲解36/39总结总结String类提供了大量的操作字符串的方法类提供了大量的操作字符串的方法获得字符串的长度:获得字符串的长度:length()比较字符串:比较字符串:equals()连接字符串:连接字符串:concat()提取字符串:提取字符串:substring()搜索字符串:搜索字符串:indexOf()拆分字符串:拆分字符串:split()常用的常用的StringBuffer类提供的方法类提供的方法转换成转换成String类型:类型:toString()连接字符串:连接字符串:append()插入字符串:插入字符串:insert()37/39作业作业课后作业课后作业教员备课时根据班级情况在此添加内容,应区分必教员备课时根据班级情况在此添加内容,应区分必做、选做内容,以满足不同层次学员的需求做、选做内容,以满足不同层次学员的需求预习作业预习作业预习目标预习目标梳理本书第梳理本书第115章知识章知识预习下一章学生用书,完成预习作业预习下一章学生用书,完成预习作业38/3939/39