Java字符串处理_第1页
Java字符串处理_第2页
Java字符串处理_第3页
Java字符串处理_第4页
Java字符串处理_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java字符串处理 第第4讲讲 字符串处理字符串处理 Java字符串处理 字符串是字符的序列,它是组织字符的基字符串是字符的序列,它是组织字符的基 本的数据结构。本的数据结构。Java将字符串当作对象来将字符串当作对象来 处理,它提供了一系列的方法对整个字符处理,它提供了一系列的方法对整个字符 串进行操作,使得字符串的处理更加容易串进行操作,使得字符串的处理更加容易 和规范。在和规范。在Java中,提供了各种处理字符中,提供了各种处理字符 串的方法。串的方法。 Java语言中的包语言中的包java.lang中封装了中封装了final类类 String和和StringBuffer,其中其中Str

2、ing类对象类对象 是字符串常量,建立后不能改变。而是字符串常量,建立后不能改变。而 StringBuffer类对象类似于一个字符缓冲区,类对象类似于一个字符缓冲区, 建立后可以修改。建立后可以修改。 Java字符串处理 4.1 String类字符串 类字符串的定义类字符串的定义 String类是字符串常量类,类是字符串常量类,String对象建立后不能修改。以前使用的对象建立后不能修改。以前使用的 每个字符串常量(用双引号括起来的一串字符)实际上都是每个字符串常量(用双引号括起来的一串字符)实际上都是String对对 象,如字符串象,如字符串“Java”在编译后即成为在编译后即成为Strin

3、g对象。因此,可以用字对象。因此,可以用字 符串常量直接初始化一个符串常量直接初始化一个String对象。例如:对象。例如: String s = Hello World. ; 由于每个字符串常量对应一个由于每个字符串常量对应一个String类的对象,所以对一个字符串常类的对象,所以对一个字符串常 量可以直接调用量可以直接调用String类中提供的方法。类中提供的方法。 注意:注意: String a = “x”; a = “y”; 假设一开始假设一开始a指向地址指向地址0 x0001,重新负值后,重新负值后a指向地址指向地址0 x0002,但,但 0 x0001地址中保存的地址中保存的“x”

4、依旧存在,但已经不再是依旧存在,但已经不再是a所指向的。所指向的。 从表面上看从表面上看String类型的对象改变了值,但事实是他不能改变值,类型的对象改变了值,但事实是他不能改变值, 只能改变指向的地址。只能改变指向的地址。 Java字符串处理 通过通过String类提供的构造方法,可以生成一个空字符串(不包含任类提供的构造方法,可以生成一个空字符串(不包含任 何字符的字符串),也可以由字符数组或字节数组来生成一个字符何字符的字符串),也可以由字符数组或字节数组来生成一个字符 串对象。缺省的构造方法不需要任何参数,它生成一个空字符串。串对象。缺省的构造方法不需要任何参数,它生成一个空字符串。

5、 例如:例如: String s = new String(); 其他创建其他创建String对象的构造方法有:对象的构造方法有: l String(String value)用已知串用已知串value创建一个字符串对象。创建一个字符串对象。 l String(char chars)用字符数组用字符数组chars创建一个字符串对象。创建一个字符串对象。 l String(char chars,int startIndex,int numChars)用字符数组用字符数组chars 的的startIndex位置开始的位置开始的numChats个字符,创建一个字符串对象。个字符,创建一个字符串对象。

6、 l String(byte ascii,int hiByte)用字节数组用字节数组ascii创建一个字符串对象,创建一个字符串对象, Unicode字符的高位字节为字符的高位字节为hiByte,通常应该为通常应该为0。 l String(byte ascii,int hiByte,int startIndex,int numChars)用字节数用字节数 组组ascii创建一个字符串对象。其参数的意义同上。创建一个字符串对象。其参数的意义同上。 注意:注意: Java提供了从字节数组来初始化字符串的方法,并且用提供了从字节数组来初始化字符串的方法,并且用hiByte来指来指 定每个字符的高位字

7、节,对定每个字符的高位字节,对ASCII码来说,码来说,hiByte应为应为0,对于其他非拉丁,对于其他非拉丁 字符集,字符集,hiByte的值应该非的值应该非0。 Java字符串处理 【例4.1】String类构造方法的使用。 public class StringConstructors public static void main(String args) String s,s1,s2,s3,s4,s5,s6,s7; byte byteArray = (byte)J, (byte)a, (byte)v, (byte)a; char charArray = 程,序,设,计; String

8、Buffer sb = new StringBuffer(欢迎); s = new String(Hello!); s1 = new String(); s2 = new String(s); s3 = new String(sb); s4 = new String(charArray,2,2); s5 = new String(byteArray,0); s6 = new String(charArray); s7 = new String(byteArray,0,0,1); s = Hello! s1 = s2 = Hello! s3 = 欢迎 s4 = 设计 s5 = Java s6 =

9、 程序设计 s7 = J Java字符串处理 类的常用方法类的常用方法 String类中提供的访问类中提供的访问String字符串的方法很多,大体上可分为类转换、字符串的方法很多,大体上可分为类转换、 子字符串、比较、修改等几类。子字符串、比较、修改等几类。 1、String类字符串的比较类字符串的比较 (1) boolean equals(Object anObject); equalsIgnoreCase(String anotherString); 方法方法equals和和equalsIgnoreCase用来比较两个字符串的值是否相等,不同用来比较两个字符串的值是否相等,不同 的是后者忽

10、略字母的大小写。例如:的是后者忽略字母的大小写。例如: 注意:与注意:与“=”实现的比较是不同的。实现的比较是不同的。“=”比较两个字符串对象是否比较两个字符串对象是否 引用同一个实例对象,而引用同一个实例对象,而equals和和equalsIgnoreCase方法比较两个字符串方法比较两个字符串 中对应的每个字符是否相同。例如:中对应的每个字符是否相同。例如: String s = new String(abc); String s1= new String(abc); / s,s1是两个不同的对象是两个不同的对象 输出为输出为 false 输出为输出为 true Java字符串处理 (2)

11、int compareTo(String anotherString) 比较两个字符串的大小,通过返回的整数值指明当前字符串与参数比较两个字符串的大小,通过返回的整数值指明当前字符串与参数 字符串的大小关系。若调用的串对象比参数大,返回正整数。反之,字符串的大小关系。若调用的串对象比参数大,返回正整数。反之, 返回负整数。相等则返回返回负整数。相等则返回0。 若比较的两个字符串有不同的字符,则比较从左边数起的第一个不若比较的两个字符串有不同的字符,则比较从左边数起的第一个不 同字符的大小即两个字符串的大小,字符的大小建立在同字符的大小即两个字符串的大小,字符的大小建立在Unicode字符字符

12、集基础上。集基础上。 例如:例如: ; /8, i与与a差差8 若比较的两个字符串各个位置的字符都相同,仅长度不同,返回值若比较的两个字符串各个位置的字符都相同,仅长度不同,返回值 为:为:this.length() - anotherString.length() 例如:例如: 1 方法方法int compareToIgnoreCase(String str)是与上述方法功能相同的方是与上述方法功能相同的方 法,但忽略字母大小写。法,但忽略字母大小写。 Java字符串处理 (3)boolean startWith(String prefix)、 boolean endWith(String

13、suffix) 两个方法均有重载:两个方法均有重载: boolean startWith(String prefix,int offset) boolean endWith(String suffix,int offset) 方法方法startWith()和和endWith()用来比较当前字符串的起始字符(或用来比较当前字符串的起始字符(或 子字符串)子字符串)prefix和终止字符(或子字符串)和终止字符(或子字符串)suffix是否和调用的字是否和调用的字 符(或字符串)相同,重载的方法中同时还可以指定比较的开始位符(或字符串)相同,重载的方法中同时还可以指定比较的开始位 置置offset

14、。 (4)boolean regionMatches(int toffset,String other,int ooffset,int len) 该方法有重载:该方法有重载: boolean regionMatches(boolean ignoreCase, int toffset,String other,int ooffset,int len); regionMatches方法的功能是比较两个字符串中指定区域的子字符方法的功能是比较两个字符串中指定区域的子字符 串是否相同。串是否相同。 其中,其中,toffset和和ooffset分别指明当前字符串和参数字符串中所要比分别指明当前字符串和参

15、数字符串中所要比 较的子字符串的起始位置,较的子字符串的起始位置,len指明比较的长度,而指明比较的长度,而ignoreCase指明指明 比较时是否区分大小写。无此参数,比较是区分大小写的。比较时是否区分大小写。无此参数,比较是区分大小写的。 Java字符串处理 2、String类子字符串和定位类子字符串和定位 (1)char charAt(int index) 返回字符串返回字符串index处的字符,处的字符,index的值从的值从0到串长度减到串长度减1。例如:。例如: 输出为输出为h (2)int indexOf(int ch)和和lastIndexOf(int ch) 重载:重载: i

16、ndexOf(int ch, int fromIndex) int indexOf(String str) int indexOf(String str,int fromIndex) 返回字符串对象中指定的字符和子串首次出现的位置,从串对象开返回字符串对象中指定的字符和子串首次出现的位置,从串对象开 始处或从始处或从fromIndex处开始查找。若未找到则返回处开始查找。若未找到则返回-1。 方法方法lastIndexOf()也有重载:也有重载: int lastIndexOf(int ch,int fromIndex) Int lastIndexOf(String str) int last

17、IndexOf(String str,int fromIndex) 这几个方法与相应的这几个方法与相应的indexOf方法相比,不同之处是从串对象的右方法相比,不同之处是从串对象的右 端开始查找。端开始查找。 Java字符串处理 【例4.2】lastIndexOf的使用。 class LastNumber public static void main(String args) String s1 = 67.89,55.87,-56.45,11.22,78.9; int i1 = s1.lastIndexOf(,); String s2 = s1.substring(i1 + 1); (3)S

18、tring substring(int beginindex)和substring(int beginindex,int endindex) 方法的功能是返回子字符串。前者返回从位置beginindex开始处 到串尾的子字符串;后者是返回从beginindex开始到endindex - 1 为止的子字符串,子串长度为endindex - beginindex。 程序运行结果为: 78.9 Java字符串处理 程序运行结果为: $45.60 【例4.3】String类方法indexOf和substring的使用。 class DollarAmount public static void mai

19、n(String args) String s1 = 这块显示卡的售价为$45.60; int i1 = s1.indexOf($); String s2 = s1.substring(i1); 程序运行结果为: 星期日 星期一 星期二 星期三 星期四 星期五 星期六 【例4.4】显示一周星期日至星期六的名称。 class WeekName public static void main(String args) String xq = 日一二三四五六,s; int i; for(i=0;i7;i+) 星期+s); Java字符串处理 3、String类字符串对象的修改类字符串对象的修改 是将

20、修改后的字符串对象赋给新的对象或直接输出。是将修改后的字符串对象赋给新的对象或直接输出。 (1)String toLowerCase()和和String toUpperCase() 方法方法toLowerCase和和toUpperCase的功能是分别将字符串中的字母的功能是分别将字符串中的字母 转换为小写和大写。例如:转换为小写和大写。例如: (2)replace(char oldChar,char newChar) 该方法的功能是将字符串中该方法的功能是将字符串中oldChar字符用字符用newChar字符替换。字符替换。 如:如:输出为输出为 41188 (3)String trim()

21、该方法的功能是截去字符串两端的空白字符该方法的功能是截去字符串两端的空白字符(whitespace,不大于不大于 u0020的字符的字符)。例如:。例如: String s = Java ; String s1 = 他他10岁。岁。 ; / 输出为:输出为:Java他他10岁。岁。 Java前后的空格字符被截去前后的空格字符被截去 Java字符串处理 4、String类与其他类的转换 (1)static String valueOf(Object obj) 该方法的功能是将其他类的参数转换为字符串对象返回。为了方便起见, String类中提供了重载的静态方法valueOf(),用来把其他类型的

22、对象转换为 字符串对象。重载方法有: l static String valueOf(char data) l static String valueOf(char data,int offset,int count) l static String valueOf(boolean b) l static String valueOf(char c) l static String valueOf(int i) l static String valueOf(long l) l static String valueOf(int i) l static String valueOf(long

23、l) l static String valueOf(float f) l static String valueOf(double d) 例如: 注:其他类也提供了方法valueOf()把一个 字符串转换为相应的类对象。 例如: String piStr = 3.14159; Float pi = Float.valueOf(piStr); /String对象转换为Float对象 Java字符串处理 (2)toString() 中提供了方法toString()把对象转换为字符串,这一方法通常 被重写以适合子类的需要。下面是一个类Integer使用toString() 方法的例子。 方法sta

24、tic String toString(int i,int radix)用来将整数i转换为radix 进制的数字字符串。例如: String s = Integer.toString(123,8); / 十进制123转换为八进制 输出为 173 在实际应用中,也经常需要将字符串转换为其他类型的数据。 例如: String s = 125; Integer obj = Integer.valueOf(s); int i = Value(); / 上两行也可合写为: int i = Integer.valueOf(s).intValue(); Java字符串处理 5、 String类

25、的其他方法 (1)int length() 方法length的功能为返回String类字符串对象的长度。 【例4.5】求几个给定字符串的平均长度。 class StringAverage public static void main(String args) String array = new String3; array0 = Short string; array1 = This is a complete sentence!; array2 = This is the longest +element in the array; int total = array0.length()

26、; total += array1.length(); total += array2.length(); 平均字符串长度为: + total/3); 程序运行结果如下: 平均字符串长度为: 26 Java字符串处理 (2)String concat(String str) 方法concat的功能是将str连接到调用串对象的后面,即进行字 符串的连接操作。例如: 41177abc 在Java语言中,重载的运算符“+”也可用来实现字符串的连 接或字符串与其他类对象的连接。例如: String s = Java + 程序设计; / s = Java程序设计 int age = 20; String

27、 s1 = “他” + age + “岁。”;/s1= “他20岁。” (3)String split(String str) 方法split的功能是将str作为分隔符进行字符串分解,分解后的 子字符串在字符串数组中返回。 Java字符串处理 【例4.6】用split方法对一个逗号分隔的数字字符串中的各个数字求和。 class SplitDemo public static void main(String args) String s=34,55,78,12,90,81,63,84; / 逗号分隔的数字字符串 String sa=s.split(,); / 给定逗号分隔符分解串后存入数组sa

28、 int ia = new int sa.length,sum = 0; for(int i=0;isa.length;i+) iai=Integer.parseInt(sai); sum += iai; 程序运行结果如下: Sum = 497 Java字符串处理 4.2 StringBuffer类字符串 类字符串的定义 StringBuffer类的对象是一种可以改变(如增长、修改)的字 符串对象,使用起来比String类更加方便。在Java语言中支持 字符串的加运算,实际上就是使用了StringBuffer类。 例如: StringBuffer str = new StringBuffer(

29、); str=“abc”; /错误,str指向的地址不能改变,只可修改空间值 StringBuffer类提供了下面几种构造方法对一个可变的字符串 对象进行初始化。 l StringBuffer()建立空的字符串对象。 l StringBuffer(int len)建立长度为len的字符串对象。 l StringBuffer(String s)建立一个初值为对象s的字符串对象。 Java字符串处理 例如:例如: StringBuffer sb1 = new StringBuffer(); StringBuffer sb2 = new StringBuffer(30); StringBuffer

30、sb3 = new StringBuffer(StringBuffer); 若不给任何参数,则系统为字符串分配若不给任何参数,则系统为字符串分配16个字符大小的缓冲个字符大小的缓冲 区,这是缺省的构造方法。参数区,这是缺省的构造方法。参数len则指明字符串缓冲区的初则指明字符串缓冲区的初 始长度。参数始长度。参数s给出字符串的初始值,同时系统还要给出字符串的初始值,同时系统还要再为再为该该 串分配串分配16个字符大小的空间(即个字符大小的空间(即16+len)。)。 这里有两个概念:长度这里有两个概念:长度length和容量和容量capacity,前者是前者是 StringBuffer类对象中

31、包含字符的数目,而后者是缓冲区空间类对象中包含字符的数目,而后者是缓冲区空间 的大小。例如:对上述初始化的的大小。例如:对上述初始化的sb3,它的它的length为为 12(StringBuffer的长度的长度),但它的,但它的capacity为为28。 Java字符串处理 类类 的常用方法的常用方法 1、设置、设置/获取获取StringBuffer类字符串对象长度和容量类字符串对象长度和容量 (1)void ensureCapacity(int minimumCapacity) 本方法的功能是设定字符串缓冲区的大小。保证缓冲区的容本方法的功能是设定字符串缓冲区的大小。保证缓冲区的容 量至少为

32、指定的值量至少为指定的值minimumCapacity 。若当前缓冲区容量小若当前缓冲区容量小 于参数值,则分配新的较大的缓冲区。新容量取以下两者中于参数值,则分配新的较大的缓冲区。新容量取以下两者中 的最大者:的最大者: 参数参数minimumCapacity 的值。的值。 老容量的两倍加老容量的两倍加2。 Java字符串处理 例如:例如: StringBuffer sb = new StringBuffer(china); sb.ensureCapacity(30); 输出为输出为44 (老容量的两倍加老容量的两倍加2:(:(16+5)*2+2=44) (2)void setLength(

33、int newLength) 本方法的功能是指明字符串的长度,这时字符串缓冲区中指本方法的功能是指明字符串的长度,这时字符串缓冲区中指 定长度以后的字符值均为零。例如:定长度以后的字符值均为零。例如: StringBuffer sb = new StringBuffer(china); sb.setLength(3); / 输出为输出为chi (3)int length() 本方法的功能是获取字符串对象的长度。本方法的功能是获取字符串对象的长度。 (4)int capacity() 本方法的功能是获取缓冲区的大小。本方法的功能是获取缓冲区的大小。 Java字符串处理 【例4.7】StringB

34、uffer字符串长度Length和容量Capacity意义的 区别。 class StringBufferDemo public static void main(String args) StringBuffer sb1 = new StringBuffer(); StringBuffer sb2 = new StringBuffer(30); StringBuffer sb3 = new StringBuffer(abcde); 程序运行结果为: sb1.capacity = 16 sb1.length = 0 sb2.capacity = 30 sb2.length = 0 sb3.ca

35、pacity = 21 sb3.length = 5 Java字符串处理 2、修改、修改StringBuffer类字符串对象类字符串对象 修改修改StringBuffer类对象的常用方法有类对象的常用方法有append、insert、delete等。等。 (1)StringBuffer append(Object obj) 方法方法append用于在串缓冲区的字符串末尾添加各种类型的数据。常见的用于在串缓冲区的字符串末尾添加各种类型的数据。常见的 重载的方法如下:重载的方法如下: StringBuffer append(boolean b)、StringBuffer append(int i)

36、、 StringBuffer append(long l)、 StringBuffer append(float f)、 StringBuffer append(double d) 【例4.8】StringBuffer字符串连接操作。 class StringBufferAppend public static void main(String args) StringBuffer sb = new StringBuffer(abcde); sb.append(fgh); sb.append(ijklmnop); 程序运行结果如下: abcdefghijklmnop sb.capacity =

37、 21 sb.length = 16 Java字符串处理 (2)StringBuffer insert() 方法方法insert()用于在串缓冲区的指定位置用于在串缓冲区的指定位置offset处插入各种类型的数据。常见处插入各种类型的数据。常见 的重载的方法有:的重载的方法有: StringBuffer insert(int offset,int i) 、 StringBuffer insert(int offset,long l) StringBuffer insert(int offset,float f) 、StringBuffer insert(int offset,double d)

38、 【例例4.9】StringBuffer字符串插入操作。字符串插入操作。 class StringBufferInsert public static void main(String args) StringBuffer sb = new StringBuffer(abcde); sb.insert(0, 012345); (3)StringBuffer reverse() 方法方法reverse用于对用于对StringBuffer类字符串对象进行颠倒操作。设原字符串的类字符串对象进行颠倒操作。设原字符串的 长度为长度为n,新字符串中新字符串中k位置的字符在原字符串中的位置为位置的字符在原字

39、符串中的位置为n-k-1。 程序运行结果如下: 012345abcde Java字符串处理 (4)StringBuffer delete(int start,int end)、 deleteCharAt(int index) 方法方法delete用来从用来从StringBuffer字符串对象中删去从字符串对象中删去从start开始到开始到end - 1结束结束 的子字符串。例如:的子字符串。例如: StringBuffer sb = new StringBuffer(aabbcc); 输出为输出为aacc 方法方法deleteCharAt用来删除用来删除index处的字符。例如:处的字符。例如

40、: StringBuffer sb = new StringBuffer(china); 输出为输出为chin (5)void setCharAt(int index,char ch) 本方法的功能是设置指定位置本方法的功能是设置指定位置index的字符值的字符值ch。 例如:例如: StringBuffer sb = new StringBuffer(aaAaa); sb.setCharAt(2,中中); / sb为为 aa中中aa (6)StringBuffer replace(int start,int end,String str) 方法的功能是将方法的功能是将StringBuffer

41、对象字符串从对象字符串从start至至end - 1处,用字符串处,用字符串str 替换。例如:替换。例如: StringBuffer sb = new StringBuffer(*); Java字符串处理 【例4.10】对StringBuffer字符串进行颠倒操作。 class StringBufferReverse public static void main(String args) StringBuffer sb1 = new StringBuffer(abcde); sb1.append(abcdefghij); StringBuffer sb2 = sb1.reverse();

42、程序运行结果如下: jihgfedcbaedcba jihgfedcbaedcba Java字符串处理 3、StringBuffer类对象的子字符串和字符类对象的子字符串和字符 (1)void getChars(int srcBegin,int srcEnd,char dst, int dstBegin) 方法的功能是将方法的功能是将StringBuffer对象字符串中字符复制到目标字符数组中去。对象字符串中字符复制到目标字符数组中去。 复制的字符从复制的字符从srcBegin处开始,到处开始,到srcEnd-1处结束处结束. 复制字符的个数为复制字符的个数为 srcEnd-srcBegin。

43、字符被复制到目标数组的字符被复制到目标数组的dstBegin至至 dstBegin + (srcEnd-srcBegin) 1处。处。 例如:例如: char a= *,*,*,*,*,*,*,*; StringBuffer sb = new StringBuffer(Java); sb.getChars(0,4,a,2); 输出为输出为 *Java* (2)String substring(int start) 方法的功能是获取方法的功能是获取StringBuffer字符串对象从字符串对象从start处开始的子串。重载的处开始的子串。重载的 方法方法String substring(int

44、start,int end)用来获取用来获取StringBuffer字符串对象从字符串对象从 start至至end - 1处之间的子串。例如:处之间的子串。例如: StringBuffer sb = new StringBuffer(Java Programming); 输出为输出为 Java Java字符串处理 4、类型转换、类型转换 (1)String toString() 在中提供了方法在中提供了方法toString将指定对象转换为字符串,与将指定对象转换为字符串,与 Character、Integer、Boolean类等一样,类等一样,StringBuffer类也重类也重 写了写了to

45、String方法方法,可将可将StringBuffer类的对象转换成类的对象转换成String类类 的对象。例如:的对象。例如: StringBuffer sb = new StringBuffer(aabbcc); String s = sb.toString(); /转换为转换为String对象对象 输出为输出为aabbcc Java字符串处理 与与StringBuffer类类 区别区别 1、地址与空间的区别、地址与空间的区别 StringBuffer s1 = new StringBuffer(a); StringBuffer s2 = new StringBuffer(a); s1.e

46、quals(s2)/为什么是为什么是false StringBuffer类中没有重新定义类中没有重新定义equals这个方法,该方法就这个方法,该方法就 来自来自Object类,而类,而Object类中的类中的equals方法是用来比较地址方法是用来比较地址 的,所以等于的,所以等于false. String s1 = new String(a); String s2 = new String(a); s1.equals(s2) String类中重新定义了类中重新定义了equals这个方法,而且比较的是这个方法,而且比较的是 值,而不是地址。所以会是值,而不是地址。所以会是true。 /为什么

47、是为什么是true Java字符串处理 2、拼接的区别、拼接的区别 String str=You are nice.; str+=I love you so much.; /这里不违背这里不违背String类是常量类的概念类是常量类的概念 StringBuffer str= new StringBuffer(You are nice.); str.append(I love you so much.); 表面看来表面看来String类只用一个加号(类只用一个加号(+)便完成了字符串的拼)便完成了字符串的拼 接,而接,而StringBuffer类却要调用一个类却要调用一个append()方法,是

48、否实方法,是否实 现起来更简洁,更单纯呢?现起来更简洁,更单纯呢? 在用在用String类对象直接拼接时,类对象直接拼接时,JVM会创建一个临时的会创建一个临时的 StringBuffer类对象,并调用其类对象,并调用其append() 完成字符串的拼接,完成字符串的拼接, 因为因为String类是不可变的,拼接操作不得不使用类是不可变的,拼接操作不得不使用 StringBuffer类(并且类(并且JVM会将会将“You are nice.”和和“I love you so much.”创建为两个新的创建为两个新的String对象)。之后,对象)。之后, 再将这个临时再将这个临时StringBuffer对象转型为一个对象转型为一个String对象!对象! 可见,在这一个简单的一次拼接过程中,程序创建了四个可见,在这一个简单的一次拼接过程中,程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论