资源描述:
《第4章 字符串.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ContentsString字符串类1StringBuffer字符串类2命令行参数3第4章字符串字符串是字符的序列,它是组织字符的基本数据结构,对于大多数程序来说都是很重要的,即使在图形程序中也需要对字符串(文件名和其他对象名)进行处理。字符串中可以包含字母、数字和其他各种特殊字符,如+、-、*、/等。在有些语言中(如C语言),字符串就是用字符数组来实现的,而在Java中是将字符串当作对象来处理,它提供了一系列的字符串操作方法,使字符串的处理更加容易和规范。Java语言中的包java.lang中封装了final类String和StringBuffer,其中类String对象是
2、字符串常量,建立后不能改变。而类StringBuffer对象类似于一个字符缓冲区,建立后可以修改。这两个类共同的特点都不能再派生子类,即它们不能被其他类继承。4.1String字符串类首先要清楚的是,字符串常量和字符常量的区别。字符常量是用单引号括起来的单个字符,如’a’,’3’,’ 52’等。而字符串常量是用双引号括起来的字符序列,如"a","java",""等。在Java中,每个字符串常量对应一个String类的对象,所以一个字符串常量可以直接调用类String中提供的方法,例如:intlen="hello".length();将得到字符串的长度5,字符串的长度即字
3、符串中字符的个数。本节主要讨论存放字符串常量的String类,包括String对象的创建、使用和操作。4.1.1类String字符串的创建String类是字符串常量类,String对象建立后不能修改。以前使用的每个字符串常量实际上都是String对象,如字符串“hello”在编译后即成为String对象。因此,可以用字符串常量直接初始化一个String对象。例如:Strings="JavaProgram";通过类String提供的默认的构造方法不需要任何参数,它生成一个空字符串。如:Stings=newString();//建立一个空字符串对象通过使用类String提供的构造
4、方法,除了可以生成一个空字符串,还可以用字符数组或字节数组来生成一个字符串对象。其他创建String对象的构造方法如表6-1所示。构造方法功能String(Stringvalue)用常量串value创建一个字符串对象String(StringBufferbuffer)用变量串buffer创建一个字符串对象String(charvalue[])用字符数组value创建一个字符串对象String(charvalue[],intoffset,intcount)用字符数组value的offset位置开始的count个字符,创建一个字符串对象String(byteascii[],int
5、hiByte)用字节数组ascii创建一个字符串对象,Unicode字符的高位字节为hiByte,通常应该为0String(byteascii[],inthiByte,intstartIndex,intcount)用字节数组ascii从startIndex位置开始的count个字符创建一个字符串对象,hiByte通常为0注意:由于在Internet上通常使用的字符都为8位的ASCII码,Java提供了从字节数组来初始化字符串的方法,并且用hiByte来指定每个字符的高位字节。对ASCII码来说,hiByte应为0,对于其他非拉丁字符集,hiByte的值应该非0。【例4.1】S
6、tring构造方法的使用。publicclassUseConstructors{publicstaticvoidmain(Stringargs[]){Strings1,s2,s3,s4,s5,s6,s7;byteb[]={(byte)'J',(byte)'a',(byte)'v',(byte)'a'};charc[]={'基','础','教','程'};StringBuffersb=newStringBuffer("你好");s1=newString();s2=newString("Hello");s3=newString(sb);s4=newString(c);s5=new
7、String(c,0,2);s6=newString(b,0);s7=newString(b,0,1,2);System.out.println("s1="+s1);System.out.println("s2="+s2);System.out.println("s3="+s3);System.out.println("s4="+s4);System.out.println("s5="+s5);System.out.println("s6="+s6);System.out.println("s7="+s