赛迪网 > IT技术 Java > 最新更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java2 参考大全:第13 章 字符串处理 (5)

发布时间:2006.05.11 01:36     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

13.5 字符串比较

String类包括了几个用于比较字符串或字符串内子字符串的方法。下面分别对它们进行介绍。13.5.1 equals( )equalsIgnoreCase( )

使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式:

boolean equals(Object str)

这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它返回true,否则返回false。这种比较是区分大小写的。为了执行忽略大小写的比较,可以调用equalsIgnoreCase( )方法。当比较两个字符串时,它会认为A-Za-z是一样的。其一般形式如下:

boolean equalsIgnoreCase(String str)

这里,str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它也返回true,否则返回false。下面的例子说明了equals( )equalsIgnoreCase( )方法:

// Demonstrate equals() and equalsIgnoreCase().

class equalsDemo {

public static void main(String args[]) {

String s1 = "Hello";

String s2 = "Hello";

String s3 = "Good-bye";

String s4 = "HELLO";

System.out.println(s1 + " equals " + s2 + " -> " +

s1.equals(s2));

System.out.println(s1 + " equals " + s3 + " -> " +

s1.equals(s3));

System.out.println(s1 + " equals " + s4 + " -> " +

s1.equals(s4));

System.out.println(s1 + " equalsIgnoreCase " + s4 + " -> " +

s1.equalsIgnoreCase(s4));

}

}

该程序的输出如下所示:

Hello equals Hello -> true

Hello equals Good-bye -> false

Hello equals HELLO -> false

Hello equalsIgnoreCase HELLO -> true

13.5.2 regionMatches( )

regionMatches( )方法将一个字符串中指定的区间和另一字符串中指定的区间进行比较。它的重载形式允许在比较时忽略大小写。下面给出这两种方法的一般形式:

boolean regionMatches(int startIndex, String str2,

int str2StartIndex, int numChars)

boolean regionMatches(boolean ignoreCase,

int startIndex, String str2,

int str2StartIndex, int numChars)

对于这两种形式,startIndex指定了调用字符串(String)对象内区间开始的下标。用于比较的字符串(String)由str2指定的。在str2内,开始比较区间的下标由str2StartIndex指定。用于比较的子字符串的长度在numChars中。在第二种方案中,如果ignoreCasetrue,字符的大小写被忽略。否则,大小写是有意义的。

13.5.3 startsWith( )endsWith( )

字符串(String)定义两个例程,它们或多或少是regionMatches( )方法的特殊形式。startsWith( )方法判断一个给定的字符串(String)是否从一个指定的字符串开始。相反地,endsWith( )方法判断所讨论的字符串(String)是否是以一个指定的字符串结尾。它们具有如下的一般形式:

boolean startsWith(String str)

boolean endsWith(String str)

这里,str是被测试的字符串(String)。如果字符串匹配,返回true。否则返回false。例如:

"Foobar".endsWith("bar")

"Foobar".startsWith("Foo")

都是true

下面给出startsWith( )方法的第二种形式。这种形式允许指定一个起始点:

boolean startsWith(String str, int startIndex)

这里,startIndex指定了调用字符串开始搜索的下标。例如,

"Foobar".startsWith("bar", 3)

返回true

13.5.4 equals( )==的比较

理解equals( )方法和==运算符执行的是两个不同的操作是重要的。如同刚才解释的那样,equals( )方法比较字符串(String)对象中的字符。而==运算符比较两个对象引用看它们是否引用相同的实例。下面的程序说明了两个不同的字符串(String)对象是如何能够包含相同字符的,但同时这些对象引用是不相等的:

// equals() vs ==

class EqualsNotEqualTo {

public static void main(String args[]) {

String s1 = "Hello";

String s2 = new String(s1);

System.out.println(s1 + " equals " + s2 + " -> " +

s1.equals(s2));

System.out.println(s1 + " == " + s2 + " -> " + (s1 == s2));

}

}

变量s1指向由“Hello”创建的字符串(String)实例。s2所指的的对象是以s1作为初始化而创建的。因此这两个字符串(String)对象的内容是一样的。但它们是不同的对象,这就意味着s1s2没有指向同一的对象,因此它们是不==的,上面例子的结果如下:

Hello equals Hello -> true

Hello == Hello -> false

<<上一页 1 2 3 4 5 6 7 8 9 10 11 12 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管