资源描述:
《补充:字符串》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、补充:字符串学习内容字符串概念字符串变量的构造字符串变量的内存分配字符串的常用方法StringBuffer类字符串字符串是一系列字符组成的序列。字符串不是字符数组,不是基本数据类型,是通过类来实现的。Java把字符串作为包java.lang中String类和StringBuffer类的对象来分别处理字符串常量和字符串变量。字符串常量是包含在双引号(””)内的一组字符由于使用频繁,有时也被视为基本类型遇到双引号自动创建String类的对象提供字符串运算符,字符串的连接:+String类与StringBuffer类St
2、ring中对字符串的操作不是对源串对象本身进行的,而是对源串对象的拷贝进行的,其操作的结果不影响源串。StringBuffer中对字符串的操作是对源串本身进行的,操作之后源串的值发生了变化。String类与StringBuffer类定长字符串:String类(效率较高)不能更改,可用于比较、搜索之类的操作可变字符串:StringBuffer类(使用灵活)可追加、插入、修改,但内存管理复杂例:String类与StringBuffer类比较publicclassStringTest{publicstaticvoidma
3、in(String[]args){Strings1="hello!";s1.concat("hru?");StringBuffers2=newStringBuffer("hello");s2.append("hru?");System.out.println(s1);System.out.println(s2);}}运行结果:hello!hello!hru?String类字符串通常是指String类的一个实例,声明一个字符串只是得到一个存放字符串首地址的变量,必须对类进行实例化后才能访问,即构造字符串.直接构造:S
4、tring变量名;变量名=字符串值;或String变量名=字符串值;使用String类的方法构造,如:String();//构造空串String(Stringoriginal);//由String对象original构造String(StringBufferbuffer);//由StringBuffer对象构造String(char[]value);//由字符数组构造String(char[]value,intoffset,intcount);//由字符数组的子数组构造String(byte[]bytes);//由
5、字节型数组构造例:字符串的构造publicclassMyClass{publicstaticvoidmain(Stringargs[]){Strings1;s1=“hello!";Strings2=“howareyou?";Strings3=newString();//构造空串Strings4=newString(s2);//由String对象构造s3=s4;StringBufferstringbufferobject=newStringBuffer("StringBufferObject");Strings5=n
6、ewString(stringbufferobject);//由StringBuffer对象构造charcharArray[]={'c','h','a','r','','a','r','r','a','y'};Strings6=newString(charArray);//由字符数组构造Strings7=newString(charArray,3,5);//由字符数组子数组构造System.out.println("s1="+s1);System.out.println("s3="+s3);System.out.p
7、rintln("s4="+s4);System.out.println("s5="+s5);System.out.println("s6="+s6);System.out.println("s7="+s7);}}字符串变量的内存分配引用相同字符串常量的字符串变量占用相同的内存实体(同一段内存空间)Strings1=“abc”;Strings2=“abc”;booleanb1=(s1==s2);结果为true注意:“==”运算比较的是两个字符串变量是否指向同一个对象(指向同一个内存实体)。字符串变量的内存分配分别用n
8、ewString()方法构造的不同字符串变量,即使内容相同,但分别占据不同的内存实体(指向各自的内存空间)用一个字符串变量给另一个字符串变量赋值,被赋值的变量与赋值变量具有相同的内存实体(指向同一段内存空间)Strings3=newString(“abc”);Strings4=newString(“abc”);Strings5=s3;booleanb2=(s