《第六章-Java2-6-字符串处理.ppt》由会员分享,可在线阅读,更多相关《第六章-Java2-6-字符串处理.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第6章章字符串处理字符串处理本章主要讲述如下内容:本章主要讲述如下内容:字符串的分类;字符串的分类;内容不可改变的字符串类内容不可改变的字符串类String;字符串常量;字符串常量;内容可以改变的字符串类内容可以改变的字符串类StringBuffer;字符串应用。字符串应用。1466.1字符串的分类字符串的分类java.lang包中定义了包中定义了String和和StringBuffer两个类;两个类;在运行中值不会改变的字符串,用在运行中值不会改变的字符串,用String类类存储;值会改变的字符串用存储;值会改变的字符串用StringBuffer类类来存储。来存储。两个类都有两个类都有fi
2、nal修饰,这样可以优化字符修饰,这样可以优化字符串的操作。串的操作。2466.2String类类String类的定义原型类的定义原型:publicfinalclassjava.lang.Stringextendsjava.lang.Object3466.2.1字符串常量字符串常量字符串常量属于字符串常量属于String类型类型;相同的字符串常量属于同一个对象,占用相同的字符串常量属于同一个对象,占用同一块空间同一块空间,例如,例如:446/程序程序6-1publicclassTestConstStringpublicstaticvoidmain(Stringargs)Stringstr1=H
3、ello,str2=Hello;System.out.println(str1=str2);System.out.println(Java=Java);5466.2.2创建创建String类对象类对象用用new运算符,并调用构造函数创建这种类运算符,并调用构造函数创建这种类型的对象,常见构造函数如下:型的对象,常见构造函数如下:1.publicString()采用该构造函数创建一个不含字符的空对象。采用该构造函数创建一个不含字符的空对象。例如:例如:Stringstr=newString();6462.publicString(charvalue)将将字字符符数数组组的的内内容容转转换换为为字
4、字符符串串,并并赋赋予予新新建的对象。例如:建的对象。例如:chara=J,a,v,a;Stringstr=newString(a);3.publicString(charvalue,intoffset,intcount)例如:例如:chara=J,a,v,a;Stringstr=newString(a,1,2);/字符串字符串str的内容是的内容是av7464.publicString(Stringvalue)采用采用value对象的值构造一个新的对象的值构造一个新的string对象。对象。例如:例如:Stringstr1=Java;Stringstr2=newString(Java);Sy
5、stem.out.println(str2);System.out.println(str1=str2);5.publicString(StringBufferBuffer)846注注意意采采用用字字符符串串常常量量初初始始化化一一个个String引引用用的的问题。例如:问题。例如:Stringstr=abc;等价于:等价于:chardata=a,b,c;Stringstr=newString(data);应用举例,注意应用举例,注意程序程序6-2的输出结果:的输出结果:946publicclassTestString/程序程序6-2publicstaticvoidmain(Stringarg
6、s)Strings1=Java,s2=Java;Strings3=newString(s1);System.out.println(s1=s2is+(s1=s2);System.out.println(s1=s3is+(s1=s3);s1=ABC;s2=DEFG;System.out.println(s1=s2is+(s1=s2);s1=s2;System.out.println(s1=s2is+(s1=s2);10466.2.3String类常用方法类常用方法1.publicintlength():求串长。求串长。例如:例如:Stringstr=Java;System.out.println
7、(str.length();2.publiccharcharAt(intindex)提取指定位置上的字符。提取指定位置上的字符。3.publicintcompareTo(StringanotherString)对字符串内容按字典序进行大小比较。例如:对字符串内容按字典序进行大小比较。例如:1146publicclassSortStringArrary/程序程序6-3publicstaticvoidmain(Stringargs)Stringstr,s=Computer,CHINA,world,U.S.A;inti,j,k;System.out.print(排序之前:排序之前:);for(i=0
8、;is.length;i+)System.out.print(t+si);for(i=0;is.length-1;i+)for(k=i,j=i+1;j0)k=j;str=si;si=sk;sk=str;/注意该行的含义注意该行的含义System.out.print(n排序之后:排序之后:);for(i=0;is.length;i+)System.out.print(t+si);12466.2.3String类常用方法类常用方法(续续)4.chartoCharArray()将将String对象转换到一个字符数组中,例如:对象转换到一个字符数组中,例如:Strings=Hello,Java!;ch
9、ara;a=s.toCharArray();for(inti=6;ia.length;i+)System.out.print(ai);13466.2.3String类常用方法类常用方法(续续)5.publicbooleanequals(StringanString)比较两个字符串对象的内容是否相等。比较两个字符串对象的内容是否相等。6.publicbooleanequalsIgnoreCase(StringanotherString)以忽略大小写方式,比较两个字符串对象的内以忽略大小写方式,比较两个字符串对象的内容是否相等。容是否相等。注意:注意:equals()方法与方法与“=”之间的区别。
10、例之间的区别。例如:如:1446publicclassConfuseQuestion/程序程序6-5publicstaticvoidmain(Stringargs)Strings1=java;Strings2=newString(s1);Strings3=s2;System.out.println(s1.equals(s2);System.out.println(s2.equals(s3);System.out.println(s2=s3);15466.2.3String类常用方法类常用方法(续续)7.publicintindexOf(intch/Stringstr)在字符串中搜索字符或子串,
11、返回字符或在字符串中搜索字符或子串,返回字符或子串在子串在String对象中从左边起首次出现的位置。对象中从左边起首次出现的位置。如果没有出现,返回如果没有出现,返回-1。8.publicStringsubstring(intbegin,intend)提取提取string对象中从对象中从begin开始,到开始,到end-1结结束的子串,返回提取的子串。束的子串,返回提取的子串。16466.2.3String类常用方法类常用方法(续续)9.publicStringconcat(Stringstr)将将str对对象象接接到到调调用用对对象象的的后后面面,返返回回新新串串。例例如:如:Strings
12、1=Hello,s2=Java,s3;s3=s1.concat(s2);System.out.println(s3);注意:注意:如果参数如果参数str为空(为空(null),),则则concat方法方法不创建新串,而仅仅返回当前串,不创建新串,而仅仅返回当前串,17466.2.3String类常用方法类常用方法(续续)10.publicStringreplace(charoldChar,charnewChar)将将String对对象象中中所所有有的的oldChar字字符符替替换换为为newChar,返回替换后的新串。例如:返回替换后的新串。例如:Stringpath=d:/myjava/do
13、cuments;System.out.println(path.replace(/,);11.publicStringtoString()12.12.返回当前字符串对象本身。返回当前字符串对象本身。18466.2.3String类常用方法类常用方法(续续)12.publicstaticStringvalueOf(各种类型各种类型f)将各种数据类型转换成一个相应的字符将各种数据类型转换成一个相应的字符串表示,该方法是一个串表示,该方法是一个static方法。方法。程序程序6-6演示了演示了valueOf()方法的应用。方法的应用。程序程序6-7自学。自学。1946publicclassTestV
14、alueOf/程序程序6-6publicstaticvoidmain(Stringargs)chara=A,B,C,D,E,F;inti=123456;floatf=3.14159f;booleanb=true;Objecto=null;System.out.println(String.valueOf(a);System.out.println(String.valueOf(a,2,3);System.out.println(String.valueOf(i);System.out.println(String.valueOf(f);System.out.println(String.val
15、ueOf(b);System.out.println(String.valueOf(o);各种各种类型类型数据数据20466.2.4Java应用程序的命令行参数应用程序的命令行参数应用程序可以通过应用程序可以通过main方法的方法的String数组,数组,访问由解释器传递的命令行参数。例如:访问由解释器传递的命令行参数。例如:publicclassShowMainArguments/程程序序6-8publicstaticvoidmain(Stringargs)for(inti=0;iZ)c=c-26;elseif(Character.isLowerCase(c)c=c+2;if(cz)c=c-
16、26;return(char)c;/将将int转换为转换为char4046publicstaticvoidmain(Stringargs)Stringline;StringBufferbuf;for(;)line=SimpleInput.readString();/读取一行字符读取一行字符if(line.equals(quit)break;buf=newStringBuffer(line);for(inti=0;i);line=in.readLine();4546if(line!=null)token=newStringTokenizer(line);System.out.print(“元素个数元素个数:”+token.countTokens()+n符号是符号是:n);while(token.hasMoreTokens()System.out.print(token.nextToken()+n);elseSystem.out.print(“元素个数元素个数:0);4646思考和练习思考和练习P119264746