《北大青鸟-使用Java理解程序逻辑.ppt》由会员分享,可在线阅读,更多相关《北大青鸟-使用Java理解程序逻辑.ppt(39页珍藏版)》请在三一办公上搜索。
1、字符串,第十五章,2,回顾与作业点评,如何调用带参方法?应注意什么?请说出以下代码的执行过程,public class TestScore/测试类public static void main(String args)Student stu=new Student();Score sc=new Score();float avg=0;stu.java=80;stu.database=95;stu.html=77;avg=sc.getAvg(stu);System.out.println(该学生的平均分为:+avg);,public class Score/成绩类/计算平均分,Student为学
2、生类 public float getAvg(Student stu)float avg=0;avg=(stu.java+stu.database+stu.html)/3;return avg;,提问,3,预习检查,如何定义一个字符串?使用什么方法可以获得字符串的长度?如何定义一个StringBuffer类的对象?,提问,4,本章任务,实现注册信息的有效性验证判断字符出现次数格式化显示商品金额,5,本章目标,掌握String类的基本用法会使用=和equals()比较字符串会使用StringBuffer类方法对字符 串进行操作,6,无处不在的字符串,生活中的字符串使用String对象存储字符串S
3、tring类位于java.lang包中,具有丰富的方法计算字符串的长度、比较字符串、连接字符串、提取字符串,频繁使用的字符串,“欢迎进入”,“Hello World”,“教育改变生活”,String s=Hello World;,String s=new String(Hello World);,String s=new String();,7,字符串长度3-1,String类提供了length()方法,确定字符串的长度,注册新用户,要求密码长度不能小于6位,问题,分析,8,public class Register public static void main(String args)Sc
4、anner input=new Scanner(System.in);String uname,pwd;System.out.print(请输入用户名:);uname=input.next();System.out.print(请输入密码:);pwd=input.next();if(pwd.length()=6)System.out.print(注册成功!);else System.out.print(密码长度不能小于6位!);,字符串长度3-2,判断密码长度,示例,9,字符串长度3-3,计算字符串长度,“Hello World”,字符串,长度,调用length()方法获得,返回字符串中的字符
5、数,调用方法:,字符串标识符.length();,方法原型:,public int length(),语法,10,字符串比较5-1,String类提供了equals()方法,比较存储在两个字符串对象的内容是否一致,注册成功后,实现登录验证。用户名为“TOM”,密码为“1234567”,问题,分析,11,public class Login public static void main(String args)Scanner input=new Scanner(System.in);String uname,pwd;(请输入用户名:);uname=input.next();System.out
6、.print(请输入密码:);pwd=input.next();if(uname.equals(TOM),字符串比较5-2,比较用户名和密码是否正确,示例,12,equals()方法比较原理“=”和equals()有什么区别呢?,字符串比较5-3,字符串 1,字符串 2,equals():检查组成字符串内容的字符是否完全一致,str1,str2,B,D,Q,N,0 x2a486c,0 x2a486c,B,D,Q,N,str1=str2?true,0 x2aac83,str1=str2?false,=:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象,问题,13,字符串比较5-4,使
7、用equalsIgnoreCase()方法 使用toLowerCase()方法使用toUpperCase()方法,登录时不考虑用户名的大小写问题,实现登录,问题,分析,14,public class Login public static void main(String args)/if()System.out.print(登录成功!);else System.out.print(用户名或密码不匹配,登录失败!);,字符串比较5-5,示例,uname.toLowerCase().equals(Tom).toLowerCase()&pwd.toUpperCase().equals(123456
8、7).toUpperCase(),uname.equals(Tom)&pwd.equals(1234567),uname.equalsIgnoreCase(Tom)&pwd.equalsIgnoreCase(1234567),15,学员操作实现会员注册2-1,训练要点String类的使用带参方法的定义和使用 需求说明实现会员注册,要求用户名长度不小于3密码长度不小于6注册时两次输入密码必须相同,指导,16,学员操作实现会员注册2-1,实现思路1.创建类Register 2.创建验证方法3.调用方法测试程序,利用do-while实现注册不成功循环注册,指导,public boolean veri
9、fy(String name,String pwd1,String pwd2),17,共性问题集中讲解,常见问题及解决办法代码规范问题调试技巧,共性问题集中讲解,18,字符串连接2-1,某学生的成绩如表所示,输出他的成绩单,问题,19,int sqlScore=80;/sql成绩int javaScore=90;/java成绩double htmlScore=86.7;/html成绩String scoreSheet=SQL:+sqlScore+Java:+javaScore+HTML:+htmlScore;,字符串连接2-2,方法1:使用“+”方法2:使用String类的concat()方法
10、,你好,张三!,String s=new String(你好,);String name=new String(张三!);String sentence=s.concat(name);System.out.println(sentence);,输出结果,A.concat(B):B字符串将被连接到A字符串后面,数值型变量自动转换成String类型,20,字符串常用提取方法4-1,合法的文件名应该以.java结尾合法的邮箱名中至少要包含“”和“.”,并检查“”是否在“.”之前,判断.java文件名是否正确,判断邮箱格式是否正确,问题,分析,21,字符串常用提取方法4-2,常用提取方法,0 1 2
11、3,位置,返回出现第一个匹配的位置 如果没有找到字符或字符串,则返回-1,22,字符串常用提取方法4-3,beginindex:字符串的位置从0开始算;endindex:字符串的位置从1开始算,常用提取方法,23,字符串常用提取方法4-4,/检查Java文件名int index=fileName.lastIndexOf(.);if(index!=-1,/检查邮箱格式if(email.indexOf()!=-1,检查文件和邮箱格式,示例,24,小结,String word=Hello,;word=word.trim();String s=word.concat(小鱼儿!);int index1=
12、s.indexOf(,);int index2=s.indexOf(!);System.out.println(s.substring(_,_);,index1+1,index2,如果要打印输出“小鱼儿”,应填入的代码是什么?,代码阅读,25,字符串拆分 2-1,String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回,有一段歌词,每句都以空格“”结尾,请将歌词每句按行输出,问题,分析,26,public class Lyric public static void main(String args)String words=长亭外 古道边 芳草碧连天 晚风扶
13、 柳笛声残 夕阳山外山;String printword=new String100;System.out.println(*原歌词格式*n+words);System.out.println(n*拆分后歌词格式*);printword=words.split();for(int i=0;iprintword.length;i+)System.out.println(printwordi);,字符串拆分 2-2,拆分字符串,返回值为字符串数组,遍历输出字符串,示例,27,学员操作实现会员注册升级,需求说明 验证身份证号、手机号、座机号格式是否正确,练习,判断座机的电话号码时,按照字符“-”符号
14、进行拆分,然后判断长度,提示,28,学员操作判断字符出现次数,需求说明输入一个字符串,再输入要查找的字符,判断该字符在该字符串中出现的次数,练习,编写统计字符出现次数的方法:public int counter(String inputs,String word)使用substring()将字符串的每个字符存入数组比较数组中每个字符是否与要求的字符相等,并计数,提示,29,共性问题集中讲解,常见问题及解决办法代码规范问题调试技巧,共性问题集中讲解,30,StringBuffer类4-1,StringBuffer:String增强版对字符串频繁修改(如字符串连接)时,使用StringBuffer
15、类可以大大提高程序执行效率StringBuffer声明StringBuffer的使用,StringBuffer sb=new StringBuffer();StringBuffer sb=new StringBuffer(aaa);,创建空StringBuffer对象,创建一个变量存储字符串aaa,sb.toString();/转化为String类型sb.append(*);/追加字符串sb.insert(1,*);/插入字符串,31,public class sbAppend public static void main(String args)StringBuffer sb=new St
16、ringBuffer(青春无悔);int num=110;StringBuffer sb1=sb.append(我心永恒);System.out.println(sb1);StringBuffer sb2=sb1.append(啊);System.out.println(sb2);StringBuffer sb3=sb2.append(num);System.out.println(sb3);,StringBuffer类4-2,相当于sb3.toString(),示例,32,StringBuffer类4-3,利用StringBuffer类的length()和insert()方法实现需求,将一个
17、数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔,问题,分析,33,public class TestInsert public static void main(String args)Scanner input=new Scanner(System.in);System.out.print(请输入一串数字:);String nums=input.next();StringBuffer str=new StringBuffer(nums);for(int i=str.length()-3;i0;i=i-3)str.insert(i,);System.out.print(st
18、r);,StringBuffer类4-4,从后往前每隔三位添加逗号,获取长度,示例,34,学员操作显示商品批发总金额2-1,训练要点StringBuffer类的使用方法的定义和使用需求说明登录验证通过后,显示批发商品信息;输入批发商品编号和数量,以指定格式显示总金额,指导,35,学员操作显示商品批发总金额2-2,实现思路1、创建类Goods 2、创建方法show()3、创建方法change()难点指导格式化输出,指导,public StringBuffer change(double d)StringBuffer str=new StringBuffer(String.valueOf(d);f
19、or(int i=str.indexOf(.)-3;i0;i=i-3)str.insert(i,);return str;,36,共性问题集中讲解,常见问题及解决办法代码规范问题调试技巧,共性问题集中讲解,37,总结,String类提供了大量的操作字符串的方法获得字符串的长度:length()比较字符串:equals()连接字符串:concat()提取字符串:substring()搜索字符串:indexOf()拆分字符串:split()常用的StringBuffer类提供的方法转换成String类型:toString()连接字符串:append()插入字符串:insert(),38,作业,课后作业教员备课时根据班级情况在此添加内容,应区分必做、选做内容,以满足不同层次学员的需求预习作业预习目标梳理本书第115章知识预习下一章学生用书,完成预习作业,39,