`

String类下compareTo()方法

    博客分类:
  • J2SE
阅读更多
转载:http://www.blogjava.net/onejavaer
String类下compareTo()方法
比较两个字符串,依次对比两个字符串中字符的ASC码,两个字符的ASC码相等则继续比较下两个字符直至比较出不同的两个字符跳出方法.方法返回值类型为整型.
例如
String a = "2345";
String b = "2322";
则a.compareTo(b)返回2
b.compareTo(a)返回-2
如果两个字符串相等,则返回值为0

自己的理解还有是偏差的,下面是经典的解释


compareTo
public int compareTo(String anotherString)
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)

如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:
this.length()-anotherString.length()


指定者:
接口 Comparable<String> 中的 compareTo
参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。

--------------------------------------------------------------------------------

compareToIgnoreCase
public int compareToIgnoreCase(String str)
不考虑大小写,按字典顺序比较两个字符串。此方法返回一个整数,它的正负号是调用 compareTo 的正负号,调用时使用了字符串的规范化版本,其大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。
注意,此方法不 考虑语言环境,因此可能在某些特定的语言环境中产生不理想的排序。java.text 包提供 Collators 来完成语言环境敏感的排序。


参数:
str - 要比较的 String。
返回:
一个负整数、零或正整数,视指定的 String 大于、等于还是小于该 String 而定,不考虑大小写。

分享到:
评论

相关推荐

    String类下compareTo()与compare()方法比较

    主要介绍了String类下compareTo()与compare()方法比较的相关资料,需要的朋友可以参考下

    java源码解析之String类的compareTo(String otherString)方法

    主要给大家介绍了关于java源码解析之String类的compareTo(String otherString)方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    Java的String的常用方法

    String的常用方法归纳与总结 char charAt(int index) 返回指定索引处的 char 值。 int compareTo(Object o) 把这个字符串和另一个对象比较。 int compareTo(String anotherString) 按字典顺序比较两个字符串。 int ...

    实现一个圆类

    (4) 提供一个判断当前圆对象与参数圆对象是否相交的方法(相交方式见下图): boolean isIntersected(Circle another) (5) 提供一个判断当前圆对象是否包含参数圆对象的方法(包含方式见下图): boolean contains...

    java排序代码

    自然排序:TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列。 定制排序:在创建TreeSet集合对象时,并提供一个Comparator接口实现类对象与该TreeSet集合...

    Java语言程序设计(第3版)第06章-字符串.pptx

    使用String类的构造方法。 String str = new String("Java is cool"); 这两种方式有区别,后面说明。 创建字符串对象 Java语言程序设计(第3版) Java语言程序设计(第3版)第06章-字符串全文共31页,当前为第4页。 ...

    java常用工具类的使用

    DateFormat是一个抽象类,不能直接实例化,可以使用下表中的静态方法得到DateFormat的对象。 方法 说明 getDateInstance() 返回默认地区,默认格式的关于日期的DateFormat对象。 getDateInstance(int) 返回指定...

    Java学习之 手撕String

    Java学习之 手撕StringJava中非常非常重要的String类所属的包继承关系String对象的构建String类的特性String类的不可变性String类中常用的方法(20+个)equals()equalsIgnoreCase()hashCode()toString()compareTo()...

    autocad objectarx类的方法属性清单

    方法: {dtor}() {dtor}() {dtor}() {dtor}() ApplyPaperOrientationTransform(Viewport) ApplyPartialUndo(DwgFiler,RXClass) Audit(AuditInfo) Cancel() Close() CloseAndPage(Boolean) CopyFrom...

    java面试宝典2012版.pdf

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 71、说出一些常用的类,包,接口,请各举5个 72、java中有几种...

    Java与JavaScript中判断两字符串是否相等的区别

    者compareTo()方法,这里需要强调的是equals()方法的参数类型,其参数类型绝对不是String类,而是Object类,咱不止一次看 到国内一些教程写的是String类(o(╯□╰)o) 大家可以看看JDK的源码: public boolean equals...

    C#全能速查宝典

    1.2 数学方法类——Math 25 1.2.1 Abs方法——返回指定数字的绝对值 25 1.2.2 Acos方法——返回余弦值为指定数字的角度 26 1.2.3 Asin方法——返回正弦值为指定数字的角度 26 1.2.4 Atan方法——返回正切值为指定...

    字符串的比较

    按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。...compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。

    java字符串操作大全

    10、compareTo()和compareToIgnoreCase() 比较字符串 11、indexOf()和lastIndexOf()  indexOf() 查找字符或者子串第一次出现的地方。  lastIndexOf() 查找字符或者子串是后一次出现的地方。 12、substring() ...

    DateUtils.java 日期处理相关工具类

    * 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ ...

    Java程序设计实验报告.doc

    以上类中属性和方法的访问权限自行确定,方法和构造方法若有参数,也自行确定 。 实验代码: public class Rectangle { int Length; int Width; public int getLength() { return Length; } public void setLength...

    最新Java面试宝典pdf版

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...

    用JAVA实现时间比较

    public static int compareTo(String date1,String date2){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); int date = 0; try { Date d1 = sdf.parse(date1); Date d2 = sdf.parse(date...

    Java-EPAM-Laboratory_1

    它具有抽象的compareTo(Field)方法。 它的实现取决于Field对象类型的数据类型。 NumberField和StringField 这些类扩展了Field类。 它们更具体。 因此,它们每个人都有自己的compareTo(Field)方法的实现。 结构...

    Java 2实用教程(第三版)实验指导与习题解答

    实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31...

Global site tag (gtag.js) - Google Analytics