java String类(字符串)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

String类字符串是字符的序列,它是许多程序设计语言的基本数据结构。有些语言中的字符串是通过字符数组实现的(如C语言),Java语言是通过字符串类实现的。Java语言提供了三个字符串类:String类、StringBuilder类和StringBuffer类。String类是不变字符串,StringBuilder和StringBuffer是可变字符串,这3种字符串都是16位的Unicode字符序列,并且这3个类都被声明为final,因此不能被继承。字符串对象Java语言用String类表示字符串。一般使用String类的构造方法创建一个字符串对象。String类有13个重载的构造方法,可以生成一个空字符串,也可以由字符或字节数组生成字符串。String类常用的构造方法如下:publicString()创建一个空字符串。String=””publicString(char[]value)使用字符数组中的字符创建字符串。publicString(char[]value,intoffset,intcount)使用字符数组中offset为起始下标,count为字符个数的字符创建字符串。publicString(byte[]bytes)使用字节数组中的字符创建字符串。publicString(byte[]bytes,intoffset,intlength)使用字节数组中offset为起始下标,length为字节个数的字符创建字符串。publicString(byte[]bytes,StringcharsetName)使用指定的字节数组构造一个新的字符串,新字符串的长度与字符集有关,因此可能与字节数组的长度不同。charsetName为使用的字符集名,如US-ASCII、ISO-8859-1、UTF-8(英文字符集)、UTF-16等。如果使用了系统不支持的字符集,将抛出UnsupportedEncodingException异常。publicString(Stringoriginal)使用一个字符串对象创建字符串。publicString(StringBufferbuffer)使用StringBuffer对象创建字符串。publicString(StringBuilderbuffer)使用StringBuilder对象创建字符串。下面的例子说明了使用字符串的构造方法创建字符串对象。程序ConstructDemo.javapublicclassConstructDemo{publicstaticvoidmain(Stringargs[]){charchars1[]={'A','B','C'};charchars2[]={'中','国','π','ぁ'};Strings1=newString(chars1);Strings2=newString(chars2,0,4);byteascii1[]={65,66,67};byteascii2[]={97,98,99,100,101};Strings3=newString(ascii1);Strings4=newString(ascii2,0,5);System.out.println(s1=+s1);System.out.println(s2=+s2);System.out.println(s3=+s3);System.out.println(s4=+s4);}}_____________________________________________________________________________程序的运行结果为:s1=ABCs2=中国πぁs3=ABCs4=abcde在Java中,还有一种特殊的创建String对象的方法,这种方法是直接利用字符串常量创建字符串对象,例如:Strings=ThisisaJavastring.;字符串长度及查找创建String类对象外,更常用的是调用String类的方法,该类定义了许多方法。publicintlength()返回字符串的长度,即字符串包含的字符个数。注意对含有汉字和其他语言符号的字符串,计算长度时,一个符号作为一个字符计数。publicintindexOf(intch)查找字符ch第一次出现的位置。如果查找不成功则返回-1,下述方法相同。publicintindexOf(intch,intfromIndex)查找字符ch从fromIndex开始第一次出现的位置(在原字符串中的下标)。publicintlastIndexOf(intch)查找字符ch最后一次出现的位置。publicintlastIndexOf(intch,intendIndex)查找字符ch到endIndex为止最后一次出现的位置。publicintindexOf(Stringstr)查找字符串str第一次出现的位置。publicintindexOf(Stringstr,intfromIndex)查找字符串str从fromIndex开始第一次出现的位置(在原字符串中的下标)。publicintlastIndexOf(Stringstr)查找字符串str最后一次出现的位置publicintlastIndexOf(Stringstr,intendIndex)查找字符串str到endIndex为止最后一次出现的位置(在原字符串中的下标)。字符串的连接与子串publicStringconcat(Stringstr)它的功能是调用字符串与参数字符串连接起来,产生一个新的字符串。publicStringsubstring(intbeginIndex,intendIndex)从字符串的下标beginIndex开始到endIndex结束产生一个子字符串。publicStringsubstring(intbeginIndex)从字符串的下标beginIndex开始到结束产生一个子字符串。publiccharcharAt(intindex)返回字符串中指定位置的字符,index表示位置,范围为0~s.length()-1。publicStringreplace(charoldChar,charnewChar)将调用字符串中的所有oldChar字符改变为newChar字符,返回一个新的字符串。publicStringtoUpperCase()将字符串转换成大写字母。publicStringtoLowerCase()将字符串转换成小写字母。publicbooleanstartsWith(Stringprefix)返回字符串是否以某个字符串开始。publicbooleanendsWith(Stringsuffix)返回字符串是否以某个字符串结尾。publicvoidgetChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)将字符串中从起始位置(srcBegin)到结束位置(srcEnd)之间的字符复制到字符数组dst中从起始位置为dstBegin。下面的程序说明了String对象的使用。程序StringDemo.javapublicclassStringDemo{publicstaticvoidmain(Stringargs[]){Strings=newString(ThisisaJavastring.);//获取字符串长度System.out.println(s.length());//22//返回指定索引处的char值。System.out.println(s.charAt(10));//J//返回指定字符在此字符串中最后一次出现处的索引。System.out.println(s.lastIndexOf('a'));//13//返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。System.out.println(s.lastIndexOf('a',10));//8//返回指定子字符串在此字符串中第一次出现处的索引。System.out.println(s.indexOf(is));//2System.out.println(s.lastIndexOf(is));//5System.out.println(s.indexOf(my));//-1char[]subs=newchar[4];//将字符从此字符串复制到目标字符数组。s.getChars(10,14,subs,0);System.out.println(subs);//JavaStrings1=It'sinteresting.;//将指定字符串连接到此字符串的结尾s1=s.concat(s1);System.out.println(s1);//ThisisaJavastring.It'sinteresting.System.out.println(s.toUpperCase());//THISISAJAVASTRING.System.out.println(s1.toLowerCase());//thisisajavastring.it'sinteresting.//测试此字符串是否以指定的后缀结束。System.out.println(s.endsWith(ing));//false}}____________________________________________________________________________程序的运行结果为:22J13825-1JavaThisisaJavastring.It'sinteresting.THISISAJAVASTRING.thisisajavastring.it'sinteresting.false字符串的解析在J2SE1.4版中为String类增加了一个split()方法,它用来实现将一个字符串分解成子字符串或令牌(token)。该方法使用正则表达式的概念指定分隔符,该方法有下面2种格式:publicString[]split(Stringregex,intlimit)参数regex表示正则表达式,limit表示模式应用的次数。publicString[]split(Stringregex)与上述方法limit为0的情况相同。在第一个方法中,如果limit的值n大于0,则模式至多被应用n-1次,结果数组的长度不大于n,数组的最后一项将包含除最后一个匹配的分隔符外的所有输入内容。如果limit的值n小于0,则模式将应用尽可能多的次数。如果n的值为0,则模式将应用尽可能多的次数,末尾的空字符串被丢弃。例如,假设一个字符串对象为bmm:and:fmm,对指定的正则表达式和次数,结果如表4.2所示:表4.2不同的正则表达式与次数对结果的影响正则表达式次数结果:2{bmm,and:fmm}:5{bmm,and,fmm}:-2{bmm,and,fmm}m5{b,,:and:f,,}m-2{b,,:and:f,,}m0{b,,:and:f}调用str.split(regex,n)产生的结果与Pattern.compile(regex).split(str,n)的结果相同。publicclassStringSplit{publicstaticvoidmain(String[]args){Stringtemp=bmm:and:fmm;String[]strs=temp.split(:);StringSplit.display(strs);strs=temp.split(m);StringSplit.display(strs);strs=temp.split(m,2);StringSplit.display(strs);}publicstaticvoiddisplay(String[]strs){for(Stringstr:strs){System.out.print(str+,);}System.out.println();}}b

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功