资源描述:
《java中将字符串作为string类型对象来处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java中将字符串作为String类型对象来处理。当创建一个String对象时,被创建的字符串是不能被改变的。每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更高效。对于那些想得到改变的字符串的情况,有一个叫做StringBuffer的String类的友类,它的对象包含了在创建之后可以改变的字符串。String类和StringBuffer类都在java.lang中定义。因此它们可以自动的被所有程序使用。两者均被说明为final,这意味着两者均不含子类。二、String构造函
2、数(1)String(),默认构造函数,无参数Strings1=newString();(2)String(charchars[]),传入字符数组char[]myChars={'a','b','c'};Strings2=newString(myChars)//使用字符串“abc”初始化s2(3)String(charchars[],intstartIndex,intnumChars),传入一个字符数组,从指定下标位置开始获取指定个数的字符,用这些字符来初始化字符串变量。char[]myChars={'h','e','l','l','o'};Strings3=newString(
3、myChars,1,3);//使用字符串“ell”初始化s3(4)String(StringstrObj),传入另一个字符串对象,用该字符串对象的内容初始化Strings4=newString(s3);//这是s4也是“ell”了。(5)String(byteasciiChars[])String(byteasciiChars[],intstartIndex,intnumChars)尽管Java的char类型使用16位(bit)表示Unicode编码字符集,在Internet中,字符串的典型格式使用由ASCII字符集构成的8位数组,因为8位ASCII字符串是共同的,当给定一个字
4、节(byte)数组时,String类提供了上面两个初始化字符串的构造函数。例子:packageExamples;classSubStringConv{publicstaticvoidmain(String[]args){byteascii[]={65,66,67,68,69,70};Strings1=newString(ascii);System.out.println(s1);Strings2=newString(ascii,2,3);System.out.println(s2);}}编译和运行后输出:ABCDEFCDE三、(1)调用字符串的length()方法可以得到该字符
5、串的长度(字符个数);(2)前面说明了如何使用new运算符创建一个字符串实例。然而这是一种早期的使用字符串常量的处理方法。对于程序中的每一个字符串常量,Java会自动创建String对象。因此,可以使用字符串常量初始化String对象。例如:Strings5="abc";inti="abc".length();//可以将字符串作为对象来进行操作(3)可以使用“+”运算符来将两个字符串连接起来产生一个新的String对象。只要+运算符有一个运算数是字符串(String)实例时,编译器就将另一个运算数转换为它的字符串形式。这种操作是通过调用一个由String类定义的字符串转换方法v
6、alueOf()来完成的。对于简单类型,valueOf()方法返回一个字符串,该字符串包含了该类型的值的字符串。对于对象,valueOf()方法调用toString()方法。每一个类都执行toString()方法,因为它是由Object定义的。toString()方法具有如下一般形式:StringtoString()。toString()方法返回一个String对象(即字符串)。该对象一般是对类的一个描述。四、一些字符串操作(1)字符截取*charcharAt(intwhere),注意,这里返回一个char字符例如:chara;a="abcde".charAt(2);//将索引
7、为2,即第三个字符赋给a*voidgetChars(intsourceStart,intsourceEnd,chartarget[],inttargetStart),这里是无返回值方法,指定要截取的子字符串的开始和结束下标,再指定要储存子字符串内字符的数组,和存放这些字符的起始位置。注意,子字符串并不包括位于结束下标的字符。*byte[]getBytes()这是getBytes()方法最简单的形式,它实现将字符存放于字节数组中。在将字符串(String)值输出到一个不支持16位Unicode