第4章 字符串.ppt
《第4章 字符串.ppt》由会员分享,可在线阅读,更多相关《第4章 字符串.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ContentsString 字符串类 1StringBuffer字符串类 2命令行参数 3第4章 字 符 串v字符串是字符的序列,它是组织字符的基本数据结构,对于字符串是字符的序列,它是组织字符的基本数据结构,对于大多数程序来说都是很重要的,即使在图形程序中也需要对大多数程序来说都是很重要的,即使在图形程序中也需要对字符串(文件名和其他对象名)进行处理。字符串中可以包字符串(文件名和其他对象名)进行处理。字符串中可以包含字母、数字和其他各种特殊字符,如含字母、数字和其他各种特殊字符,如+、-、*、/等。在有等。在有些语言中(如些语言中(如C语言),字符串就是用字符数组来实现的,语言),字符串
2、就是用字符数组来实现的,而在而在Java中是将字符串当作对象来处理,它提供了一系列的中是将字符串当作对象来处理,它提供了一系列的字符串操作方法,使字符串的处理更加容易和规范。字符串操作方法,使字符串的处理更加容易和规范。vJava语言中的包语言中的包java.lang中封装了中封装了final类类String和和StringBuffer,其中类,其中类String对象是字符串常量,建立后不对象是字符串常量,建立后不能改变。而类能改变。而类StringBuffer对象类似于一个字符缓冲区,建对象类似于一个字符缓冲区,建立后可以修改。这两个类共同的特点都不能再派生子类,即立后可以修改。这两个类共同
3、的特点都不能再派生子类,即它们不能被其他类继承。它们不能被其他类继承。4.1 String 字符串类字符串类v首先要清楚的是,字符串常量和字符常量的区别。首先要清楚的是,字符串常量和字符常量的区别。字符常量是用单引号括起来的单个字符,如字符常量是用单引号括起来的单个字符,如a,3,052等。而字符串常量是用双等。而字符串常量是用双引号括起来的字符序列,如引号括起来的字符序列,如a,java,n等。等。在在Java中,每个字符串常量对应一个中,每个字符串常量对应一个String类的类的对象,所以一个字符串常量可以直接调用类对象,所以一个字符串常量可以直接调用类String中提供的方法,例如:中提
4、供的方法,例如:vint len=hello.length();v将得到字符串的长度将得到字符串的长度5,字符串的长度即字符串中,字符串的长度即字符串中字符的个数。字符的个数。v本节主要讨论存放字符串常量的本节主要讨论存放字符串常量的String类,包括类,包括String对象的创建、使用和操作。对象的创建、使用和操作。4.1.1 类类String字符串的创建字符串的创建vString类是字符串常量类,类是字符串常量类,String对象建立对象建立后不能修改。以前使用的每个字符串常量后不能修改。以前使用的每个字符串常量实际上都是实际上都是String对象,如字符串对象,如字符串“hello”在
5、编译后即成为在编译后即成为String对象。因此,可以用对象。因此,可以用字符串常量直接初始化一个字符串常量直接初始化一个String对象。对象。v例如:例如:vString s=Java Program;v通过类通过类String提供的默认的构造方法不需要提供的默认的构造方法不需要任何参数,它生成一个空字符串。如:任何参数,它生成一个空字符串。如:vSting s=new String();/建立一个空字符串建立一个空字符串对象对象v通过使用类通过使用类String提供的构造方法,除了可提供的构造方法,除了可以生成一个空字符串,还可以用字符数组以生成一个空字符串,还可以用字符数组或字节数组来
6、生成一个字符串对象。其他或字节数组来生成一个字符串对象。其他创建创建String对象的构造方法如表对象的构造方法如表6-1所示。所示。构造方法功能String(String value)用常量串value创建一个字符串对象String(StringBuffer buffer)用变量串buffer创建一个字符串对象String(char value)用字符数组value创建一个字符串对象String(char value,int offset,int count)用字符数组value的offset位置开始的count个字符,创建一个字符串对象String(byte ascii,int hiByt
7、e)用字节数组ascii创建一个字符串对象,Unicode字符的高位字节为hiByte,通常应该为0String(byte ascii,int hiByte,int startIndex,int count)用字节数组ascii 从startIndex位置开始的count个字符创建一个字符串对象,hiByte通常为0注意注意:v由于在由于在Internet上通常使用的字符都为上通常使用的字符都为8位位的的ASCII码,码,Java提供了从字节数组来初始提供了从字节数组来初始化字符串的方法,并且用化字符串的方法,并且用hiByte来指定每来指定每个字符的高位字节。对个字符的高位字节。对ASCII
8、码来说,码来说,hiByte应为应为0,对于其他非拉丁字符集,对于其他非拉丁字符集,hiByte的值应该非的值应该非0。【例例4.1】String构造方法的使用。构造方法的使用。vpublic class UseConstructorsvpublic static void main(String args)v String s1,s2,s3,s4,s5,s6,s7;v byte b=(byte)J,(byte)a,(byte)v,(byte)a;v char c=基,础,教,程;v StringBuffer sb=new StringBuffer(你好);v s1=new String();
9、v s2=new String(Hello);v s3=new String(sb);v s4=new String(c);v s5=new String(c,0,2);v s6=new String(b,0);v s7=new String(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.
10、out.println(s7=+s7);4.1.2 类类String字符串处理的常用方法字符串处理的常用方法v类类String中提供的访问中提供的访问String字符串的方法很多,大体上字符串的方法很多,大体上可分为比较、判断前后缀、单个字符的查找、子字符串定可分为比较、判断前后缀、单个字符的查找、子字符串定位、连接和类转换等几类。位、连接和类转换等几类。v1类类String字符串的比较字符串的比较v(1)boolean equals(Object anObject)和和boolean equalsIgnoreCase(String anString)v功能:用来比较两个字符串的值是否相等,不
11、同的是后者功能:用来比较两个字符串的值是否相等,不同的是后者忽略字母的大小写。例如下面的表达式:忽略字母的大小写。例如下面的表达式:vjava.equals(java)/值为值为truevjava.equalsIgnoreCase(JAVA)/值为值为truev注意:它们与运算符注意:它们与运算符“=“实现的比较是不同的。运算符实现的比较是不同的。运算符“=“比较两个字符串对象是否引用同一个实例对象,而比较两个字符串对象是否引用同一个实例对象,而equals()和和equalsIgnoreCase()则比较两个字符串中对应的每个则比较两个字符串中对应的每个字符是否相同。字符是否相同。例如:例如
12、:vString s1=new String(java);vString s2=new String(java);vString s3=s1;vSystem.out.println(s1=s2);vSystem.out.println(java=java);vSystem.out.println(s1=s3);System.out.println(s1.equals(s2);v(2)int compareTo(String anString)和int compareToIgnoreCase(String str)v功能:用于比较两个字符串的大小,所不同的是后者忽略字母大小写。通过返回的整数值指
13、明当前字符串与参数字符串的大小关系。若调用串比参数串大,返回正整数;反之,返回负整数;相等则返回0。v比较方法:v若比较的两个字符串有不同的字符,则从左边数起的第一个不同字符的大小即两个字符串的大小,字符的大小建立在Unicode字符集基础上,方法的返回值为:v调用串中的第一个不同字符-参数串中的第一个不同字符。v 例如:v pareTo(that)/值为8;因为i-a=8v若比较的两个字符串各个位置的字符都相同,仅长度不同,则方法的返回值为:v调用串的长度-参数串的长度v例如:v pareTo(abc)/值为4-3=1(3)boolean regionMatches(int toffset,
14、String other,int ooffset,int len)和boolean regionMatches(Boolean ignoreCase,int toffset,String other,int ooffset,int len);v功能:用于比较两个字符串中指定区域的子字符串是否相同。v其中,toffset和ooffset分别指明当前字符串和参数字符串中所要比较的子字符串的起始位置,len指明比较的字符个数(长度),而ignoreCase指明比较时是否区分大小写,若无此参数,比较是区分大小写的。v例如:vJava.regionMatches(0,java,0,4)/falsevJa
15、va.regionMatches(true,0,java,0,4)/true2判断字符串的前缀和后缀判断字符串的前缀和后缀vboolean startsWith(String prefix)和vboolean endsWith(String suffix)v用于判断当前字符串的前缀和后缀是否和指定的字符(或字符串)相同。如:v居民身份证的最后一位数字表示性别,奇数为男性,偶数为女性,则可通过下面的语句来辨别某位居民的性别:vif(s.endsWith(1)|s.endsWith(3)|s.endsWith(5)|s.endsWith(7)|s.endsWith(9)vSystem.out.pr
16、intln(此人为男性);velse System.out.println(此人为女性);v3字符串中单个字符的查找v(1)char charAt(int index)v功能:返回字符串在index处的字符,index的值从0到串长度减1。例如:vSystem.out.println(Java.charAt(1);/输出为av(2)int indexOf(int ch);和v int indexOf(int ch,int fromIndex)v功能:返回当前字符串中某特定字符ch出现的位置。第1种方法从前向后顺序查找,v第2种方法从指定位置fromIndex之后开始查找,若找到,则返回该字符第
17、1次出现的位置序号,否则返回-1。v【例4.2】indexOf的使用vclass UseIndexOfvpublic static void main(String args)vString s=java program language;vint i=-1;vdoi=s.indexOf(int)g,i+1);System.out.print(i+t);while(i!=-1);vvv运行结果:v81619-14类类String子字符串的定位子字符串的定位v1.int indexOf(String str)和v int indexOf(String str,int fromIndex)v in
18、t lastIndexOf(String str)和v int lastIndexOf(String str,int fromIndex)v方法indexOf()的功能是从前向后查找指定子字符串在主串中出现的位置。v方法lastIndexOf()的功能是从后向前查找指定子字符串在主串中出现的位置。v 例4.3 lastIndexOf的使用vclass UseLastIndexOfvpublic static void main(String args)vString s=java program language;vint i=s.length();vdovi=s.lastIndexOf(g,
19、i-1);vSystem.out.print(i+t);vwhile(i!=-1);vvv运行结果:v19 16 8 -1v2.String substring(int beginindex)v String substring(int beginindex,int endindex)v功能:返回子字符串。前者从主串的beginindex处开始到串尾获取一个子串返回;后者从主串的beginindex处开始到endindex-1处获取一个子串返回,子串的长度=endindex-beginindex。v【例4.4】substring方法的使用vclass UseSubstringvvpublic
20、static void main(String args)vvString s1=java program language;vint beginindex=s1.indexOf(p);vint endindex=s1.lastIndexOf(m);vString s2=s1.substring(beginindex,endindex+1);vSystem.out.println(s2);vvv运行结果:vprogram5字符串的连接字符串的连接vString concat(String str);v功能:将str连接到主串的末尾,并返回连接后的字符串,但是主串本身并没有改变。v如下面的例子:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 字符串
限制150内