chapter09字符串讲解课件_第1页
chapter09字符串讲解课件_第2页
chapter09字符串讲解课件_第3页
chapter09字符串讲解课件_第4页
chapter09字符串讲解课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

IntroductionToJavaProgrammingCollegeOfSoftwareLiu.ZhiGangEmail:dqpilzg@163.comChapter09StringandTextIOPartIStringstr1=“Java";str1=“HTML";问题:

下列代码是否改变字符串的内容?结论:字符串的内容一旦建立,该字符串所在堆上的内容就无法改变。什么是字符串?(1)字符串就是一个字符序列.在许多语言中,将字符串处理为字符的数组,但是在java中字符串是一个对象.(2)java提供了StringStringBuffer

StringTokenizer这三个类来处理字符串.8.1String构造函数String()String(Stringvalue)String(char[]chr)String(SringBuffers)Stringstr1="WelcometoJava";Stringstr2=new

String("WelcometoJava");char[]chr={'W','e','l','c','o','m','e','','t','o','','J','a','v','a'};Stringstr3=new

String(chr);方法字符串比较equals(String

str)(returntypeisboolean)falseStrings1=new

String("abc");Strings2=new

String("abc");if(s1==s2)

System.out.println(“true");else

System.out.println(“false");if(s1.equals(s2))

System.out.println(“true");else

System.out.println(“false");trueSummarize:==比较的是变量在栈中的值是否相同。对于基础数据类型,可以比较其值是否相等。对于引用类型,栈里的值就是一个地址,因此比较的是地址是否相同,而不是堆上的具体内容是否相同。equals比较的是两个引用类型的变量指向的堆中的内容是否相同。Methods字符串比较startsWith(String

str)(returntypeisboolean)endWith(String

str)(returntypeisboolean)字符串连接我们可以使用concat()方法连接两个字符串使用+连接两个或者多个字符串。Stringstr1="abc";Stringstr2="abe";Stringstr3="bf";Stringstr4=str1+str2+str3;Stringstr5=str1.concat(str2);Note:java语言区分大小写Stringstr1=“welcomtojava";booleanflag1=str1.startsWith(“welcom");booleanflag2=str1.endsWith(“Java");truefalseNote:java语言区分大小写Methods字符串转换(returntypeareString)toLowerCase()toUpperCase()replaceFirst(String

oldstring,String

newstring)replaceAll(String

oldstring,String

newstring)注意:转换后的结果保存在新的字符串中,对原有字符串没有任何改变。Stringstr1=“welcomtojava";Stringstr2=str1.replaceAll("java",“JSP");Stringstr3=str1.toUpperCase();System.out.println(str2);System.out.println(str3);welcomtoJSPWELCOMTOJAVASystem.out.println(str1);welcomtojavaThinkingtheresult!public

classTest{ public

static

void

main(String[]args){ Stringmessage="ABCD";

repalce(message);

System.out.println(message); } public

static

void

repalce(String

str){

str.replaceAll("A","B"); }}2010软件大赛试题:写出程序结果public

classTest{public

static

void

main(String[]args){Stringmessage="ABCD";repalce1(message);

System.out.println(message);Stringmessage2=replace2(message);System.out.println(message2);}public

static

voidrepalce1(Stringstr){

str.replaceAll("A","B");}public

staticStringreplace2(Stringstr){Stringr=str.replaceAll("A","B");returnr;}}2010软件大赛试题变形:写出程序结果Methods字符串查找indexOf(String

str)(returntypeisint)lastIndexOf(String

str)subString(intbegin)(returntypeisString)subString(int

beginIndex,int

endIndex)Stringstr=new

String("IlikeJava");inti1=str.indexOf("like");inti2=str.lastIndexOf("a");Stringstr1=str.substring(2,5);210likNote:截取的子串是从begin开始,到end-1结束Methods字符串和字符的转换charAt(intindex)char[]chrs=str.toCharArray();字符串长度length()Stringstr11=new

String("IlikeJava");charc=str11.charAt(2);char[]chrs=str11.toCharArray();intlength=str11.length();Methods字符串比较equals(String

str)startsWith(String

str)endWith(String

str)字符串连接+,concat()字符串转换toLowerCase()toUpperCase()replaceFirst(String

oldstring,String

newstring)replaceAll(String

oldstring,String

newstring)Methods字符串查找indexOf(String

str)lastIndexOf(String

str)subString(intbegin)subString(intbegin,intend)字符串和字符之间的转换charAt(intindex)char[]chrs=str.toCharArray();字符串长度length()参见实验指导书例程Example从一个字符串中截取具有指定特征的子串。Myemailisdqpilzg@163.com!Y…….参见实验指导书例程Stringmessage="Myemailisdqpilzg@163.com!Youcanmailtome.";intB=message.indexOf('!');Stringmessage2=message.substring(0,B);intA=message2.lastIndexOf('');Stringemail=message2.substring(A+1);System.out.println(email);(1)email在该字符串中以空格开始,以叹号结束.(2)该字符串中仅包含一个叹号BAmessage.substring(A+1,B);8.2StringBufferIntroductionString对象一旦创建后,它的值就不能再修改,比如插入、追加。如果要修改,只能重新赋值。凡是String可以使用的地方,都可以使用StringBuffer。StringBuffer更灵活,我们可以增加、插入和追加新的内容在缓冲区中。频繁修改字符串对象的值,对内存浪费很大。StringBuffer,也称为字符串缓冲区,可以实现长度可变和内容可变的字符序列。情况类似数组和ArrayList(数组一旦创建,长度固定,但是ArrayList的长度可以变化。)构造函数StringBuffer(String

str)E.g.StringBuffer

strBuffer=newStringBuffer(“abc”);字符串追加append(dataTypet)dataType:boolean、char、int、long、float、double、String、chr[]、object字符串插入insert(intindex,dataTypet)StringBufferb1=new

StringBuffer("Itis");b1.append("JDK");b1.append(2.0);StringBufferb2=new

StringBuffer("Itis");b2.insert(6,2.0);b2.insert(6,"JDK");Result:b1=b2=ItisJDK2.0字符串删除delete(int

begin_index,int

end_index)其他操作length()reverse()将字符串的内容按照从后往前的顺行进行颠倒Note:从begin开始,到end-1结束参见实验指导书例程Stringstr="12345";StringBuffer

b1=new

StringBuffer(str);StringBuffer

b2=strBuffer.reverse();b2.delete(0,1);System.out.println(“b2="+b2);543214321ExampleScannerscanner=new

Scanner(System.in);System.out.println("Pleaseinputthestring:");StringoldStr=scanner.nextLine();StringBuffer

oldBuffer=new

StringBuffer(oldStr);StringBuffer

newBuffer=oldBuffer.reverse();StringnewStr=new

String(newBuffer);if(oldStr.equals(newStr))

System.out.println(oldStr+"是回文字符串");else

System.out.println(oldStr+"不是回文字符串");public

classTest{ public

static

void

main(String[]args){

StringBuffera=new

StringBuffer("AA");

StringBufferb=new

StringBuffer("BB");

f(a,b);

System.out.println(a); } private

static

void

f(StringBufferx, StringBuffery){ x.append(y); }}2010软件大赛试题:写出程序结果8.3StringTokenizerStringstr="Friday;Monday;Sunday";FridayMondaySundayStringTokenizer也称字符分析器,使用分隔符进行字符串的分隔ConstructorStringTokenizer(Strings)使用默认的分隔符:空格、回车、Tab符StringTokenizer(Strings,Stringdelim)使用自定义分隔符MethodscountTokens()在要分析的字符串中,以分隔符为标记,统计有多少个子串nextToken()逐个获取子串hasMoreTokens()是否还有子串,如果有,返回true,否则返回falseExample分析字符串,输出单词的总数和每个单词参见实验指导书例程Stringstr="Friday;Monday;Sunday";StringTokenizer

stk=new

StringTokenizer(str,";");System.out.println("单词总数是:"+stk.countTokens());inti=0;while(stk.hasMoreTokens()){i++;Stringword=stk.nextToken();

System.out.println("第"+i+"个单词为:"+word);}使用StringTokenizer对象,对字符串str,按照分隔符”;”进行分隔总结字符串的内容一旦建立,该字符串所在堆上的内容就无法改变。比较字符串的内容是否相等,必须使用equals方法,而不能使用==操作符StringBuffer可以实现长度可变和内容可变的字符序列,方法有append,insert,delete,length,reverseStringTokenizer根据分隔符进行字符串的分割,在构造函数中可以定指定分隔符,方法有countTokens,nextToken,hasMoreTokens以下内容学生了解即可MethodsStringCompareequals(String

str)falseStrings1,s2,Strings3="abc",s4="abc";s1=new

String("abc");s2=new

String("abc");if(s1==s2)

System.out.println(“true");else

System.out.println(“false");if(s3==s

温馨提示

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

评论

0/150

提交评论