第五章 数组与字符串 联系客服

发布时间 : 星期三 文章第五章 数组与字符串更新完毕开始阅读

Java程序设计入门与精通

⑶ 字符串比较操作

字符串比较操作可以使用比较操作符”= =”,或者使用比较方法equals。

图5-16 用双引号赋值法产生的字符串对象

【例5-10】字符串比较示例

设计思路:

利用类的构造方法和双引号赋值法创建4个内容相同的字符串,通过对它们不同比较的结果,阐述两类字符串的区别以及两种比较方式的不同。

代码:

// String compchar.java源程序

import java.io.*;

public class compchar { public static void main(String[ ] args){

String str1=new String(\ //使用类的构造方法 String str2=new String(\ } }

程序运行结果如图5-17。

83

String str3=\ //使用双引号\赋值法 String str4=\

System.out.println(str1+\ \ \ \System.out.println(str1==str2); //false System.out.println(str3==str4); // true System.out.println(str2==str3); // false System.out.println(str1.equals(str2)); //true System.out.println(str3.equals(str4)); //true System.out.println(str2.equals(str3)); //true

第五章 数组和字符串

分析运行结果不难看出,比较操作符”= =”不管对那种方式产生的字符串对象,都是比较两个对象的内存地址,地址不同,结果自然为false,仅在地址相同时,结果才为true。而equals方法比较的是两个字符串对象的内容,两个字符串对象无论地址在哪,只要内容相同,比较结果都为true。所以,当要对两个字符串对象的内容进行比较时,建议最好使用equals方法。

图5-17 例5-10程序运行结果图

⑷ String类字符串对象是不可修改的

任何修改String类字符串对象的操作,都将导致产生一个新的字符串对象。 例如:下述语句段产生图5-18的结果。

String str1=new String(\ //使用类的构造方法产生字符串 String str2=new String(\ str2= new String(\

图5-18由构造方法产生的字符串对象被修改之后

而以下语句段导致图5-19的结果。

84

Java程序设计入门与精通

String str3=\ //使用双引号””赋值法产生字符串 String str4=\str4=\

图5-19 用双引号赋值法产生的字符串对象被修改之后

在Java中,String类包含有50多个方法来实现字符串的各种操作。在接下来的内容中,我们将介绍构造方法以外的其它常用方法。

2.串的连接与求串长方法 (1)字符串的连接

String concat(String str)

该方法作用类似”+”运算,它将字符串str连接到原来字符串的后面。 例如:

String strA= \

String strB= \

String strC= strA.concat(strB); // This is a Java program (2)求字符串的长度

int length()

该方法返回字符串的长度,这里的长度指的是字符串中Unicode字符的数目。 例如:

String strB= \他们是学生\

int lenB=strB.length(); //lenB的值是5 3.比较字符串的方法

比较字符串可以利用String类提供的下列方法: (1)equals()与equalsIgnoreCase()

equals()方法在两个字符串内容相等的时候返回true,否则返回false。 equalsIgnoreCase()方法功能和equals()方法相似,不同的地方在于equalsIgnoreCase方法将忽略字母大小写的区别。

85

第五章 数组和字符串

(2)compareTo()

通常,仅仅知道两个字符串是否相等是不够的。对于排序应用来说,必须知道一个字符串是大于、等于还是小于另一个字符串。字符串的compareTo()方法实现了这种功能,对应这三种情况将分别返回一个大于0、0及小于0的整数。

形式:int compareTo(String anotherString) 例如:System.out.println(strA. CompareTo( strB)); 4.求子串的方法

(1)substring()

substring方法可以从一个大的字符串中提取一个子串,该方法有两种常用的形式: String substring(int begpos)

从begpos位臵起,从当前字符串中取出剩余的字符作为一个新的字符串返回。 String substring(int begpos, int endpos)

从当前字符串中取出一个子串,该子串从begpos位臵起至endpos-1为结束。 注意:字符串的第1个字符的位臵为0,第2个字符的位臵为1,其余依此类推。 (2)startsWith()与endsWith()方法

判断字符串的前缀和后缀有两种方法,常用的形式如下: boolean startsWith(String prefix)

boolean startsWith(String prefix, int pos) boolean endsWith(String suffix)

boolean endsWith(String suffix, int pos)

startsWith()方法判断当前字符串的前缀是否和指定的字符串prefix一致,如果一致,返回true,否则返回false。

endsWith()方法的作用是判断当前字符串的后缀是否和参数中指定的字符串suffix一致,如果是,返回true,否则返回false。

当上述方法带有参数pos时,意味着比较位臵是从pos位臵开始进行的。 【例5-11】compareTo与求子字符串示例 代码:

// substr.java源程序 import java.io.*;

public class substr{ public static void main(String[ ] args){

86

String strA= \String strB= \他们是学生\

String strC= strA.concat(strB); System.out.println(strC);

System.out.println(strA.compareTo(strB)); System.out.println(strB.compareTo(strC));

System.out.println(\:\