您好,欢迎访问三七文档
第六章字符串处理第六章字符串处理主要涉及:在程序运行初始化后不能改变的字符串类String字符串内容可以动态改变的类StringBuffer用于进行字符串词法分析类StringTokenizer。字符串和其它数据类型间的转换。利用Java字符串处理技术不仅可以减少程序设计的工作量,而且使程序编制更加规范,减少错误的发生。第六章字符串处理6.1String类6.2StringBuffer类6.3StringTokenizer类的应用6.4字符串与其他数据类型的转换6.1String类6.1.1字符串的构造6.1.2String类的常用方法6.1.1字符串的构造6.1.1字符串的构造字符串的声明和其它类一样,如下格式Strings;创建字符串可以使用String类的构造方法。例如:s=newString(“Wearestudents”);s=“Wearestudents”;声明和实例化对象也可一步完成:Strings=newString(Wearestudents);Strings=Wearestudents;6.1.2String类的常用方法String类提供了length()、charAt()、indexOf()、lastIndexOf()、getChars()、getBytes()、toCharArray()等方法(参见JavaAPI文档)。在这些方法中,按用途来分,可以分为:字符串长度计算字符串比较字符串检索字符串截取字符串替换6.1.2String类的常用方法1、字符串长度计算使用String类中的length()方法可以获取一个字符串的长度。length()方法的定义如下:publicintlength()该方法返回字符串中的16-bit的Unicode字符的数量。例如:Strings=wearestudents,tom=我们是学生;intn1,n2,n3;n1=s.length();//n1的值是15n2=tom.length();//n2的值5n3=”我的爱好”.length();//n3值是46.1.2String类的常用方法2、字符串比较字符串比较的方法有equals()、equalsIgnoreCase()、startsWith(),endsWith()、regionMatches()、compareTo(),compareToIgnoreCase()等方法(1)、equals和equalsIgnoreCase方法在String类中equals()定义如下:publicbooleanequals(Strings)该方法用来比较当前字符串对象的实体是否与参数指定的字符串s的实体是否相同。例如Stringtom=newString(wearestudents);Stringboy=newString(Weareboys);Stringjerry=newString(wearestudents);tom.equals(boy)的值是false,tom.equals(jerry)的值是true.6.1.2String类的常用方法在String类中equalsIgnoreCase()定义如下:publicbooleanequalsIgnoreCase(Strings)字符串对象调用比较当前字符串对象是否与参数指定的字符串s相同,比较时忽略大小写。例如:Stringtom=newString(“ABC”),Jerry=newString(“abc”);tom.equalsIgnoreCase(Jerry)的值是true。(2)、startsWith、endsWith方法字符串对象调用publicbooleansrartsWith(Strings)方法,判断当前字符串对象的前缀是否是参数指定的字符串s,如Stringtom=220302620629021,jerry=21079670924022;tom.startsWith(220)的值是true;jerry.startsWith(220)的值是false。6.1.2String类的常用方法可以使用publicbooleanendsWith(Strings)方法,判断一个字符串的后缀是否是字符串s,如Stringtom=220302620629021,jerry=21079670924022;tom.endsWith(021)的值是truejerry.endsWith(021)的值是false.6.1.2String类的常用方法(3)、regionMatches方法该方法的申明格式为:publicbooleanregionMatches(intfirstStart,Stringother,intotherStart,intlength)和publicbooleanregionMatches(booleanb,intfirstStart,Stringother,intortherStart,intlength)从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串,并将这个子串和参数other指定的一个子串进行比较。其中other指定的子串是从参数othertStart指定的位置开始,从other中取长度为length的一个子串。如果两个子串相同该方法就返回true,否则返回false。注意,字符串的位置编号从0开始。6.1.2String类的常用方法(4)、compareTo,compareToIgnoreCase方法String类中中compareTo和compareToIgnoreCase方法申明的格式为:publicintcompareTo(Strings)publicintcompareToIgnoreCase(Strings)compareTo方法,按字典顺序与参数s指定的字符串比较大小。如果当前字符串与s相同,该方法返回值0,如果当前字符串对象大于s,该方法返回正值,如果小于s,该方法返回负值。例如Stringstr=abcde;str.compareTo(boy);//小于0str.compareTo(“aba”);//大于0str.compareTo(“abcde”);//等于0按辞典序比较两个字符串还可以使用compareToIgnoreCase(Strings)方法,该方法忽略大小写6.1.2String类的常用方法【例6-2】将下面的字符串数组按字典序重新排列publicclassSortStrs{publicstaticvoidmain(Stringargs[]){Stringa[]={Java,Basic,C++,Fortran,SmallTalk};for(inti=0;ia.length-1;i++){for(intj=i+1;ja.length;j++){if(a[j].compareTo(a[i])0){Stringtemp=a[i];a[i]=a[j];a[j]=temp;}}}for(inti=0;ia.length;i++){System.out.print(+a[i]);}}}程序的运行结果如下:BasicC++FortranJavaSmallTalk6.1.2String类的常用方法3、字符串检索搜索指定字符或字符串在字符串中出现的位置,用于字符或字符串在字符串中的定位。方法申明格式如下:publicintindexOf(intch)publicintindexOf(intch,intfromIndex)publicintindexOf(Stringstr)publicintindexOf(Stringstr,intfromIndex)上述四个重载的方法分别用于在字符串中定位指定的字符和字符串,并且在方法中可以通过fromIndex来指定匹配的起始位置。如果没有检索到字符或字符串,该方法返回的值是-1。如下面代码所示。StringstrSource=IloveJava“;intnPosition;nPosition=strSource.indexOf(‘v’);//nPosition的值为:4nPosition=strSource.indexOf(‘a’,9);//nPosition的值为:10nPosition=strSource.indexOf(love);//nPosition的值为:2nPosition=strSource.indexOf(love,0);//nPosition的值为:26.1.2String类的常用方法另外,String类还提供字符串中的最后位置的定位,方法申明格式如下:publicintlastIndexOf(intch)publicintlastIndexOf(intch,intfromlndex)publicintlastIndexOf(Stringstr)publicintlastIndexOf(Stringstr,intfromIndex)上述四个重载的方法分别用于在字符串中定位指定的字符和字符串最后出现的位置,并且在上述方法中可以通过fromIndex来指定匹配的起始位置。如果没有检索到字符或字符串,该方法返回的值是-1。6.1.2String类的常用方法4、字符串的截取在字符串中截取子字符串,其申明格式如下:publicStringsubstring(intbeginIndex)该方法将获得一个当前字符串的子串,该子串是从当前字符串的beginIndex处截取到最后所得到的字符串。publicStringsubstring(intbeginIndex,intendIndex)该方法将获得一个当前字符串的子串,该子串是从当前字符串的beginIndex处截取到endIndex-1结束所得到的字符串。如下面的代码所示:StringstrSource=newString(Javaisinteresting);StringstrNewl=strSource.substring(5);//strNew1=”isinteresting”StringstrNew2=strSource.substring(5,6);//strNew2=”i”6.1.2String类的常用方法5、字符串的替换在String类中字符串替换的申明格式如下:publicStringreplace(charoldChar,charnewChar)字符串对象s调用该方法可以获得一个串对象,这个串对象是用参数newChar指定的字符替换s中由oldChar指定的所有字符而得到的字符串。publicStringreplaceAll(Stringold,Stringnew)字符串对象s调用该方法可以获得一个串对象,这个串对象是通过用参数new指定的字符串替换s中由old指定的所有字符串而得到的字符串。publicStringtrim()一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。如下面的代码所示:Strings=Imisttheep;Stringtemp=s.replace(‘t’,’s’);//结果是“ImisssheepStrings=Iamastudent;Stringtemp=s.trim();//结果是Iamastudent6.1.2String类的常用方法6.其他命令(1)字符串大小写转换,申明格式如下:publicStringtoUpperCase()publicStringtoLowerCase()(2)转换为字符串数组,申明格式如下:publicchar[]toCharArray()(3)字符串到字符数组之间的转换,申明格式如下:getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)(4)连接两个字符串,申明格式如下:publicStringconcat(Stringstr)该方法用于将两个字符串连接在一起,与字符串的“+”操作符功能相同。第
本文标题:java字符串处理
链接地址:https://www.777doc.com/doc-4168175 .html