




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,Objectives,TousetheStringclasstoprocessfixedstringsTousetheCharacterclasstoprocessasinglecharacterTousetheStringBufferclasstoprocessflexiblestringsTolearnhowtopassstringstothemainmethodfromthecommandlineTodiscoverfileproperties,deleteandrenamefilesusingtheFileclassTowritedatatoafileusingthePrintWriterclassToreaddatafromafileusingtheScannerclass,2,Introduction(P2628.1),Stringareusedofteninprogramming.AStringisasequenceofcharacters.Inmanylanguage,stringsaretreatedasarrayofcharacters,butinJavaastringisanObject.,3,StringsAreImmutable(8.2.2),AStringobjectisimmutable;itscontentscannotbechanged.Doesthefollowingcodechangethecontentsofthestring?Strings=Java;s=s+HTML;,4,ConstructaString,(1)Tocreatingastringfromastringliteral(2)Sincestringsareusedfrequently,Javaprovidesashorthandinitializerforcreatingastring:(3)Createastringfromanarrayofcharacters,Stringmessage=newString(WelcometoJava);,Stringmessage=WelcometoJava;,charcharArray=g,o,o,d;Stringmessage=newString(charArray);,5,InternedStrings,Strings1=newString(welcometojava);Strings2=newString(welcometojava);System.out.println(s1=s2);,Strings1=welcometojava;Strings2=welcometojava;System.out.println(s1=s2);,Strings1=welcometojava;Strings2=newString(welcometojava);System.out.println(s1=s2);,6,InternedStrings(8.2.2),Sincestringsareimmutableandarefrequentlyused,toimproveefficiencyandsavememory,theJVMusesauniqueinstanceforstringliteralswiththesamecharactersequence.Suchaninstanceiscalledinterned.YoucanalsouseaStringobjectsinternmethodtoreturnaninternedstring.,7,Examples(8.2.2),Display:s1=sisfalses2=sistrues=s3istrue,Anewobjectiscreatedifyouusethenewoperator.Ifyouusethestringinitializer,nonewobjectiscreatediftheinternedobjectisalreadycreated.,8,FindingStringLength(8.2.4),Definition:publicintlength(),Stringmessage=Welcome;intlength=message.length();/7for(inti=0;imessage.length();i+),9,RetrievingIndividualCharacter(8.2.4),Definition:publiccharcharAt(intindex),Stringmessage=welcometojava;charc1=messsage.charAt(0);/wcharc2=messsage.charAt(message.length()-1);/a,10,Exercise1,输入任意字符串,将其反向输出Scannerinput=newScanner(System.in);Strings=input.next();反向输出s,11,Exercise2(P270listing8.1),判断一个字符串是不是回文(palindrome)Palindrome:dad,mom,noonNotPalindrome:ok,event,12,Exercise3,编写方法count,在字符串中寻找一个字符的出现次数,例如count(“welcome”,e);/returns2publicstaticintcount(Stringstr,charc),13,ObtainingSubstrings(8.2.6),Definition:publicStringsubstring(intbeginIndex)publicStringsubstring(intbeginIndex,intendIndex),Strings1=WelcometoJava;Strings2=s1.substring(0,11);/(0-includsive,11-excludsive)Strings3=s1.substring(11);/11-includsive,14,FindingaCharacteroraSubstring(8.2.8),publicintindexOf(intch)publicintindexOf(Strings)Returnstheindexofthefirstoccurrenceofthespecifiedcharacter/string-1ifthecharacterdoesnotoccurpublicintlastIndexOf(intch)publicintlastIndexOf(Stringch)Returnstheindexofthelastoccurrenceofthespecifiedcharacter-1ifthecharacterdoesnotoccur,15,Example,Stringmessage=“WelcometoJava”;intindex=message.indexOf(a);/12.index=message.indexOf(x);/-1.index=message.indexOf(“java”);/-1.index=message.indexOf(“Java”);/11.index=message.lastIndexOf(“va”);/13.,16,FindingaCharacteroraSubstring(8.2.8),publicintindexOf(intch,intfromIndex)publicintindexOf(Strings,intfromIndex)Returnstheindexstringofthefirstoccurrenceofthespecifiedcharacter/string,startingthesearchatthespecifiedindex.-1ifthecharacterdoesnotoccurpublicintlastIndexOf(intch,intfromIndex)publicintlastIndexOf(Stringstr,intfromIndex)Returnstheindexwithinthisstringofthelastoccurrenceofthespecifiedsubstring,searchingbackwardstartingatthespecifiedindex.-1ifthecharacterdoesnotoccur,17,Example,Stringmessage=“WelcometoJava”;intindex=message.indexOf(a,13);/14.index=message.indexOf(“We,5);/returns-1.index=message.indexOf(o,2);/?index=message.indexOf(o,6);/?,18,Exercise4,编写程序,输出任意double数的整数部分几位,小数部分几位?例如:123456.69,整数部分6位,小数部分2位Scannerinput=newScanner(System.in);doublenum=input.nextDouble();提示:1.将num转换为字符串:Stringsnum=num+”;2.找到小数点的位置:intpoint=snum.indexOf(?);3.截取整数部分子串:Stringpart1=snum.subString(?,?);4.截取小数部分子串:Stringpart2=snum.subString(?);5.分别输出整数部分长度和小数部分长度,19,Exercise5,输入任意文件路径,输出其路径、文件名、文件扩展名。例如输入:E:/08-09-2-Java/PPT/chapter8.ppt输出:文件路径:E:/08-09-2-Java/PPT文件名:chapter8文件扩展名:ppt,20,Exercise6,实现indexOf函数publicintindexOf(Strings1,Strings2)在s1中找s2,返回其首次出现的位置,找不到返回-1不使用String类的indexOf!,21,Exercise7,编写函数compare,比较两个字符串从同一位置开始,有多少个字符连续相同,返回最大的相同数。例如:“6220462”“9020466”,4个“622046212121”“902046612121”,5个staticintcompare(Strings1,Strings2),22,StringComparisons(8.2.3),publicbooleanequals(Objecto),Scannerinput=newScanner(System.in);Strings1=input.next();Strings2=input.next();if(s1.equals(s2)System.out.println(“两个字符串包含的字符相同”);,23,思考题,classCircledoubleradius;Circle(doublenewRadius)radius=newRadius;测试:Circlec1=newCircle(5.5);Circlec2=newCircle(5.5);System.out.println(c1.equals(c2);/false,24,publicbooleanequals(ObjectanObject)if(this=anObject)returntrue;if(anObjectinstanceofString)StringanotherString=(String)anObject;intn=count;if(n=anotherString.count)charv1=value;charv2=anotherString.value;inti=offset;intj=anotherString.offset;while(n-!=0)if(v1i+!=v2j+)returnfalse;returntrue;returnfalse;,equals是Object类中的一个方法(该方法将比较两个对象的地址是否相同),它被java所有的类继承。如果某个类对于equals条件有任何其他要求,则需要改写equals方法,下面是String类的equals方法。仿照该方法为Circle类提供equals方法,当两个圆的半径相同返回true,否则返回false。,25,StringComparisons(8.2.3),publicbooleanstartsWith(Stringprefix)publicbooleanendsWith(Stringsuffix),Scannerinput=newScanner(System.in);Strings1=input.next();if(s1.startsWith(“java”)System.out.println(“该字符串由java开头”);if(s1.endsWith(“java”)System.out.println(“该字符串由java结尾”);,26,MatchingString(8.6.1),publicbooleanmatches(Stringregex),Scannerinput=newScanner(System.in);Strings1=input.next();if(s1.matches(“d.*d”)System.out.println(“该字符串由数字开头,数字结尾”);if(s1.matches(“A-Z1,40-92”)System.out.println(“该字符串1-4个A-Z字符开头,以2个数字结尾”);,27,“.”代表任何字符“d”代表任何数字,“D”代表任何非数字字符“s”代表空格,“S”代表任何非空格字符“x*”代表0个或多个x,(xy)*代表0个或多个xy“x?”代表0个或1个x,(xy)?代表0个或1个xy“x+”代表1个或多个x,(xy)+代表1个或多个xyxyz表示取x,y,z其中一个0-9表示取0-9其中一个x|y|z表示取x,y,z其中一个“x5”表示5个x“x5,”表示至少5个x“x5,8”表示至少5个x,最多8个x(xyz)2表示xyz出现两次,28,Exercise8,判断一个字符串是不是java合法标识符,regex代表java合法标识符:字母(pL),下划线,$开头,后跟字母,下划线,数字pN,$任意组合Scannerinput=newScanner(System.in);Strings=input.next();Stringregex=“(pL|_|$)(pN|pL|_|$)*”;if(s1.matches(regex)System.out.println(“该字符串可以作为Java标识符”);,29,Exercise9,判断输入是不是正确的邮件地址正确地址:字母(包括大小写)数字的任意组合+字母(包括大小写)数字的任意组合+.net或者.com,30,StringConversions(8.2.7),publicStringtoUpperCase()publicStringtoLowerCase()publicStringtrim()publicStringreplace(charoldChar,charnewChar),Scannerinput=newScanner(System.in);Strings=input.next();Stringsu=s.toUpperCase();Stringsl=s.toLowerCase();Stringst=s.trim();Stringsr=s.replace(a,A);,31,Splitstring,Strings=“12,13,15,16,18,19”;StringsArray=s.split(“,”);,sArray,32,ConvertCharacterandNumberstoStrings(8.2.10),StringtonumberStringsdnum=“12.5”;Stringsinum=“50”;doublednum=Double.parseDouble(snum);intinum=Integer.parseInt(sinum);NumbertoStringdoubled=14.8;Stringsnum=d+“”;,33,Exercise10,输入一串用“,”分隔的数字串,求和,34,TheStringBufferClass(P2738.4),TheStringBufferclassisanalternativetotheStringclass.Ingeneral,astringbuffercanbeusedwhereverastringisused.StringBufferismoreflexiblethanString.Youcanadd,insert,orappendnewcontentsintoastringbuffer.,35,StringBufferConstructors,publicStringBuffer()Nocharacters,initialcapacity16characters.publicStringBuffer(intlength)Nocharacters,initialcapacityspecifiedbythelengthargument.publicStringBuffer(Stringstr)Representsthesamesequenceofcharactersasthestringargument.Initialcapacity16plusthelengthofthestringargument.,36,AppendingNewContentsintoaStringBuffer,StringBufferstrBuf=newStringBuffer();strBuf.append(Welcome);strBuf.append();strBuf.append(to);strBuf.append();strBuf.append(Java);,37,insertNewContentsintoaStringBuffer,StringBuffermainStr=newStringBuffer(“黄河远上白云,一片孤城万仞山);StringsubStr=间;mainStr.insert(6,subStr);System.out.println(mainStr);,38,deleteContentsfromaStringBuffer,StringBuffermainStr=newStringBuffer(“黄河远上白云间,一片孤城万仞山);mainStr.deleteCharAt(4);System.out.println(mainStr);StringBuffermainStr2=newStringBuffer(“黄河远上白云间,一片孤城万仞山);mainStr2.delete(0,8);System.out.println(mainStr2);/一片孤城万仞山,39,modifyStringBuffer,StringBuffermodiStr=newStringBuffer(Wheniamyoung,Idlisteningtotheradio);modiStr.setCharAt(5,I);modiStr.replace(7,9,was);System.out.println(modiStr);,40,Exercise15,从输入的字符串中删除指定的字符串,例如:输入“thisisastring”,删除“is”,删除后的串为”thastring”staticStringdelete(Strings,Stringdel),41,Exercise16,将一个十进制的字符串转换为逗号分隔的字符串,从右边开始每三个数字标一个逗号。例如1234567,返回1,234,567staticStringinsert(Stringnum,intinterval),42,TheCharacterClass,43,Example,charc=f;if(Character.isDigit(c)System.out.println(c+是数字);elseif(Character.isLetter(c)System.out.println(c+“是字母);,44,Example,charc=f;if(Character.isUpperCase(c)System.out.println(c+是大写);elseif(Character.isLowerCase(c)System.out.println(c+是小写);elseSystem.out.println(c+不分大小写);,45,Example,charc=f;if(Character.isUpperCase(c)System.out.println(Character.toLowerCase(c);elseif(Character.isLowerCase(c)System.out.println(Character.toUpperCase(c);elseSystem.out.println(c+不分大小写);,46,Example,charc=1;if(Character.isDigit(c)intnum=Character.getNumericValue(c);num+;System.out.println(num);elseSystem.out.println(c+不是数字);,47,Exercise11,统计一个字符串中有多少个数字,例如:”cat223dog456n”中数字个数是6publicstaticintcount(Strings),48,Exercise12,二进制转化为10进制publicstaticintparseBinary(StringbinaryString)intnum=parseBinary(“1001”):1*23+0*22+0*21+1*20=9;,49,Exercise13,统计一个字符串中每个数字出现多少次publicstaticintcount(Strings)intcount=newint10;提示:用counti存储i的个数例如:intcount=count(“12203AB3”);输出:0出现1次1出现1次2出现2次3出现2次4出现0次,50,Exercise14,统计字符串中有多少个数字段例如:“cat223dog456nice25ttt98”数字段个数是4publicstaticintcount(Strings),51,TheFileClass,TheFileclassisawrapperclassforthefilenameanditsdirectorypath.,52,53,importjava.io.*;publicclassTestFileClasspublicstaticvoidmain(Stringargs)Filefile=newFile(“d:/image/us.gif);System.out.println(Doesitexist?+file.exists();System.out.println(Canitberead?+file.canRead();System.out.println(Canitbewritten?+file.canWrite();System.out.println(Isitadirectory?+file.isDirectory();System.out.println(Isitafile?+file.isFile();System.out.println(Isitabsolute?+file.isAbsolute();System.out.println(Isithidden?+file.isHidden();System.out.println(Absolutepathis+file.getAbsolutePath();System.out.println(Lastmodifiedon+newjava.util.Date(file.lastModified();,54,CreateFile,Filef1=newFile(“D:/test/a.doc”);/创建指定文件booleanb=f1.createNewFile();Filef2=newFile(D:test1test2);/创建指定文件夹,如果上层文件夹不存在,会一同创建booleanb=f2.mkdirs();/只创建最后一层文件夹,如果上层文件夹不存在,创建失败b=f2.mkdir();/,55,Deletefile,Filef1=newFile(“D:/test/a.doc”);f1.delete();/删除文件Filef2=newFile(D:/test);f2.delete();/删除文件夹,文件夹必须为空才能删除,56,Renamefile,将D:/test/a.doc重命名成b.docFilef1=newFile(D:/test/a.doc);Filef2=newFile(D:/test/b.doc);f1.renameTo(f2);将D:/test/a.doc转移到D:/Filef1=newFile(D:/test/a.doc);Filef2=newFile(D:/a.doc);f1.renameTo(f2);,57,WritingDataUsingPrintWriter,importjava.io.*;publicclassPrintWriterDemopublicstaticvoidmain(Stringargs)throwsFileNotFoundExceptionPrintWriterpw=newPrintWriter(“d:/a.txt”);pw.println(“天天好心情_);pw.print(123456);pw.close();,58,WritingDataUsingPrintWriter,importjava.io.*;Importjava.util.*;publicclassPrintWriterDemopublicstaticvoidmain(Stringargs)throwsFileNotFoundExceptionScannerin=newScanner(System.in);PrintWriterpw=newPrintWriter(d:/a.txt);for(inti=0;i2;i+)System.out.println(请输入学号);Stringid=in.next();pw.print(id+“);System.out.println(请输入姓名);Stringname=in.next();pw.print(name+“);System.out.println(请输入年龄);intage=in.nextInt();pw.println(age);pw.close();,1张三202李四19,59,WritingDataUsingPrintWriter,60,TheScannerClass,JDK1.5Feature,Scannerscanner=newScanner(System.in);Strings=scanner.next();System.out.println(s);,Input:WelcometoJava!Javaisfun!Javaiscool!Output:Welcome,Bydefault,thedelimitersforseparatingtokensinaScannerarewhiteSpaces,61,TheScannerClass,Scannerscanner=newS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沧州市中医院血管通路建立配合考核
- 大学酒吧常规知识培训课件
- 沧州市中医院专业外语应用考核
- 秦皇岛市中医院专科护理学术引领考核
- 2025北京林业大学雄安校区规划建设指挥部招聘1人模拟试卷及答案详解一套
- 2025年福建省南平市建阳区新华书店招聘3人模拟试卷及答案详解1套
- 秦皇岛市人民医院肿瘤突变负荷分析考核
- 2025儿童医院腹壁重建技术专项考核
- 张家口市中医院起搏心电图分析考核
- 2025法士特社会招聘模拟试卷及一套参考答案详解
- 我的家乡-枣阳
- 2023年宝钢股份用户满意度调查分析报告
- GB/T 18851.4-2005无损检测渗透检测第4部分:设备
- GB/T 17553.1-1998识别卡无触点集成电路卡第1部分:物理特性
- 2023年西藏山南雅砻天然饮品有限公司招聘笔试模拟试题及答案解析
- 海南矿产资源概况
- 幻影桌面云管理平台实践指导手册
- 沪教牛津版英语4A M3U1 In our school:animal school优质课课件
- 编版一年级下册 《荷叶圆圆》2022年小学语文作业设计
- 施工现场安全检查记录表(周)以及详细记录
- 汽车配件购销合同集合
评论
0/150
提交评论