单元3任务二天气预报信息处理程序设计_第1页
单元3任务二天气预报信息处理程序设计_第2页
单元3任务二天气预报信息处理程序设计_第3页
单元3任务二天气预报信息处理程序设计_第4页
单元3任务二天气预报信息处理程序设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务二:天气预报信息处理程序设计单元三:数据与异常处理程序设计教学目标知识目标掌握获得字符创长度、比较、连接、提取、查询字符串、大小写转化等操作的方法

掌握StringBuffer对象的常用方法能力目标能够掌握获得字符创长度、比较、连接、提取、查询字符串、大小写转化等操作的方法运用StringBuffer字符串进行追加及字符化处理教学内容4任务陈述123知识准备任务实施任务拓展任务实训5任务描述:设计实现了一个天气预报的数据处理的功能,能提供在线的信息编辑处理,比如插入删除和修改,以及查找、替换等功能。对天气预报数据处理要求为:将每日的天气用字符串数组表示;将每日的天气用转为可编辑字符串数组表示;将每日的天气每个空格处替换为",",在日期前加序号格式为1、2、等;获得5日夜间的温度。1.任务陈述2.知识准备生活中的字符串使用String对象存储字符串String类位于java.lang包中,具有丰富的方法计算字符串的长度、比较字符串、连接字符串、提取字符串频繁使用的字符串“欢迎进入”“HelloWorld”“教育改变生活”Strings="HelloWorld";Strings=newString("HelloWorld");Strings=newString();2.知识准备String类提供了length()方法,确定字符串的长度注册新用户,要求密码长度不能小于6位2.知识准备publicclassRegister{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); Stringuname,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位!"); } }}判断密码长度2.知识准备计算字符串长度字符串长度调用length()方法获得返回字符串中的字符数调用方法:字符串标识符.length();方法原型:publicintlength(){}2.知识准备String类提供了equals()方法,比较存储在两个字符串对象的内容是否一致2、注册成功后,实现登录验证。用户名为“TOM”,密码为“1234567”2.知识准备publicclassLogin{ publicstaticvoidmain(String[]args){ 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("登录成功!"); }else{ System.out.print("用户名或密码不匹配,登录失败!"); } }}比较用户名和密码是否正确2.知识准备equals()方法比较原理“==”和equals()有什么区别呢?字符串1字符串2equals():检查组成字符串内容的字符是否完全一致str1str2BDQN0x2a486c0x2a486cBDQNstr1==str2?true0x2aac83str1==str2?false==:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象2.知识准备使用equalsIgnoreCase()方法使用toLowerCase()方法使用toUpperCase()方法系统登录时不考虑用户名的大小写问题,实现登录2.知识准备publicclassLogin{ publicstaticvoidmain(String[]args){ …

if(uname.equals("Jbit")&&pwd.equals("Bdqn")){

System.out.print("登录成功!"); }else{ System.out.print("用户名或密码不匹配,登录失败!"); } }}uname.equalsIgnoreCase("Jbit

")&&pwd.equalsIgnoreCase("Bdqn

")

uname.toLowerCase().equals(("Jbit

").toLowerCase())&&pwd.toUpperCase().equals(("Bdqn

").toUpperCase())2.知识准备青春无悔0123

位置方法说明publicintindexOf(intch)搜索第一个出现的字符ch(或字符串value)publicintindexOf(Stringvalue)publicintlastIndexOf(intch)搜索最后一个出现的字符ch(或字符串value)publicintlastIndexOf(Stringvalue)返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回-12.知识准备beginindex:字符串的位置从0开始算;endindex:字符串的位置从1开始算方法

说明publicStringsubstring(intindex)提取从位置索引开始的字符串部分publicStringsubstring(intbeginindex,intendindex)提取beginindex和endindex之间的字符串部分publicStringtrim()返回一个前后不含任何空格的调用字符串的副本2.知识准备合法的文件名应该以.java结尾合法的邮箱名中至少要包含“@”和“.”,并检查“@”是否在“.”之前判断.java文件名是否正确,判断邮箱格式是否正确2.知识准备

//检查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无效。");}2.知识准备Stringword="Hello,";word=word.trim();Strings=word.concat("小鱼儿!");intindex1=s.indexOf(',');intindex2=s.indexOf('!');System.out.println(s.substring(______,_______));index1+1index2如果要打印输出“小鱼儿”,应填入的代码是什么?2.知识准备String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回有一段歌词,每句都以空格“”结尾,请将歌词每句按行输出publicclassLyric{ publicstaticvoidmain(String[]args){ Stringwords="长亭外古道边芳草碧连天晚风扶柳笛声残夕阳山外山"; String[ ]printword=newString[100]; System.out.println("***原歌词格式***\n"+words); System.out.println("\n***拆分后歌词格式***");

printword=words.split("");

for(inti=0;i<printword.length;i++){ System.out.println(printword[i]); } }}拆分字符串,返回值为字符串数组遍历输出字符串2.知识准备StringBuffer:不可变的String增强版StringBuffer声明StringBuffer的使用StringBuffersb=newStringBuffer();StringBuffersb=newStringBuffer("aaa");创建空StringBuffer对象创建一个变量存储字符串aaasb.toString();//转化为String类型sb.append("**");//追加字符串2.知识准备publicclasssbAppend{ publicstaticvoidmain(String[]args){

StringBuffersb=newStringBuffer("青春无悔");

intnum=110;

StringBuffersb1=sb.append("我心永恒");

System.out.println(sb1);

StringBuffersb2=sb1.append('啊');

System.out.println(sb2);

StringBuffersb3=sb2.append(num);

System.out.println(sb3); }}相当于sb3.toString()2.知识准备利用StringBuffer类的length()和insert()方法实现需求将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔2.知识准备publicclassTestInsert{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.print("请输入一串数字:"); Stringnums=input.next(); StringBufferstr=newStringBuffer(nums); for(inti=str.length()-3;i>0;i=i-3){

str.insert(i,','); } System.out.print(str); }}从后往前每隔三位添加逗号获取长度2.知识准备

在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。但是有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。3.1解决步骤(1)打开Eclipse,创建一个类WeatherForcast;

(2)声明一个String类的对象WeatherForcast;

(3)利用String类的求长度、查找子字符串,并将天气预报的内容按天分为两个String对象;

(4)用数组表示两个String对象;

(5)利用String类实现查找替换获取长度等操作;

(6)利用StringBuffer实现追加和删除等操作;

(7)创建测试类,运行程序;3.任务实施3.2任务代码publicclassWeatherForcast{publicstaticString[]splite(StringweatherData,StringdateOfWeather){

StringeachDayOfReport[]=newString[2];//存放每天的天气情况eachDayOfReport=weatherData.split(dateOfWeather);eachDayOfReport[1]=dateOfWeather+eachDayOfReport[1];returneachDayOfReport; }3.任务实施publicstaticvoidgetNightTemperature(Stringdata,Stringnight){ intbegin=data.indexOf(night); intend=0;

for(inti=0;i<3;i++){//向后移3个",",返回索引 begin=data.indexOf(",",begin+1); end=data.indexOf(",",begin+1);}System.out.println("温度:"+data.substring(begin+1,end));//显示夜间温度 }//获得夜间温度

3.任务实施StringeachDayOfReport[]=newString[2];//存放每天的天气eachDayOfReport=splite(weatherforcast,"6日");

for(intcount=0;count<eachDayOfReport.length;count++)System.out.println(eachDayOfReport[count]);StringBufferstb[]={newStringBuffer(eachDayOfReport[0]),newStringBuffer(eachDayOfReport[1])};//创建可编辑字符串数组 for(inti=0;i<stb.length;i++){

StringmodifiedText=(stb[i].toString()).replaceAll("",","); stb[i].replace(0,stb[i].capacity(),""); stb[i].append(modifiedText);//追加修改后的文本 stb[i].append("3级");//追加微风3级 intb=stb[i].toString().indexOf("℃"); stb[i].delete(b,b+"℃".length());//删除第一个℃ stb[i].insert(0,Integer.toString(i+1)+"、");//插入序号上面x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论