Java String类的compareTo()方法-简单理解与使用

原创 2018年04月16日 18:53:34

  简单来说,String类的compareTo()方法是用来比较两个字符串的字典顺序。
  用字符串1跟字符串2作比较,如果字符串1的字典顺序在字符串2前面,则返回一个负数。若在后面,则返回一个正数。若两个字符串的字典顺序相同,则返回0。
  这里的字典顺序指的是ASCII码表中的字符顺序。ASCII表中每个字符都有对应的下标,从0开始升序排列,共128个字符。

比较字典顺序的规则


  • 字符串1的第一个字符跟字符串2的第一个字符不相等,则两个字符串都按照第一个字符的ASCII码顺序进行比较,其他字符都不用看,并返回一个整型。

示例
public class MyTest {
    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = "IloveU";
        System.out.println(str1.compareTo(str2));
    }
}

  以上代码运行结果为24
  str1的第一个字符 a 在ASCII码表中十进制的下标为 97 ,str2的第一个字符 I 是 73 ,97比73多24,所以返回 24 。



  • 字符串1的第一个字符如果跟字符串2的第一个字符相等,那么就以两个字符串的第二个字符开始比较,如果还是相等就以第三个字符开始比较……以此类推,直到两个字符串中出现不一样的字符时再比较双方的字典顺序。

示例

public class MyTest {
    public static void main(String[] args) {
        String str1 = "aIloveU520";
        String str2 = "abc";
        System.out.println(str1.compareTo(str2));
    }
}

  以上代码运行结果为 -25
  str1的第二个字符 I 的在ASCII码表中的下标为 73 , str2的第二个字符 b 为 98 ,73比98少25,所以返回-25。



  • 如果两个字符串的前几位字符都相同,但字符串2比字符串1多几位字符,那么就以字符串的长度进行比较。

示例

public class MyTest {
    public static void main(String[] args) {
        String str1 = "ljj";
        String str2 = "ljjLovexql";
        System.out.println(str1.compareTo(str2));
    }
}

  以上代码运行结果为 -7
  str1比str2少7个字符,所以返回 -7

String类中的compareTo方法总结

最近我发现了一个事情,那就是在面试笔试中,好多公司都喜欢在String字符串上出问题,涉及到方方面面的知识,包括其中的一些常用方法。在此,我总结下关于String类中的compareTo方法,以备应对...
  • qq_25827845
  • qq_25827845
  • 2016-12-25 16:09:39
  • 16054

Java String类中的compareTo源代码分析

String的compareTo其实就是依次比较两个字符串ASC码。如果两个字符的ASC码相等则继续后续比较,否则直接返回两个ASC的差值。如果两个字符串完全一样,则返回0,如果长度不一样就返回整数或...
  • Tao_QQ
  • Tao_QQ
  • 2014-03-22 15:05:05
  • 1959

String类中自动重写compareTo( )方法对汉字的比较

博主的更多文章>>  String类中自动重写compareTo( )方法对汉字的比较 2016-09-24 09:23:29 转载自:http://a001807.blog....
  • Lily_sayhi
  • Lily_sayhi
  • 2017-07-18 17:50:36
  • 654

String类的compareTo()和compareToIgnoreCase()

compareTo()的返回值是int,它是先比较对应字符的大小(ASCII码顺序) 1、如果字符串相等返回值0 2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(a...
  • sujianxin2012
  • sujianxin2012
  • 2014-08-31 12:20:47
  • 1987

Java String.compareTo()方法

Java String.compareTo()方法用法实例教程, 此方法如果这个字符串是等参数字符串那么​返回值0,如果这个字符串是按字典顺序小于字符串参数那么返回小于0的值,如果此字符串是按字典顺序...
  • litong09282039
  • litong09282039
  • 2015-05-30 20:39:18
  • 4912

java中的compareto方法的详细介绍

java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a="a",b="b"; System.out.println(a.compareto(...
  • baidu_21578557
  • baidu_21578557
  • 2016-04-23 16:49:18
  • 2662

String类下compareTo()方法

String类下compareTo()方法比较两个字符串,依次对比两个字符串中字符的ASC码,两个字符的ASC码相等则继续比较下两个字符直至比较出不同的两个字符跳出方法.方法返回值类型为整型.例如St...
  • qsd007
  • qsd007
  • 2007-03-22 21:15:00
  • 13498

compareTo()方法返回值 String java

前言:今天浏览网页时看见有人对String类的compareTo()方法的返回值感到疑惑不解,所以我写了这篇文章,希望能帮助这些有疑惑的人.  compareTo()的返回值是整型,它是先比较对...
  • yixiaotian1988
  • yixiaotian1988
  • 2012-07-19 16:24:40
  • 11804

Java中的compareTo()函数用法-Comparable

指定者: 接口 Comparable 中的 compareTo 参数: anotherString - 要比较的 String。 返...
  • nanjifengchen
  • nanjifengchen
  • 2010-11-15 11:41:00
  • 43534
收藏助手
不良信息举报
您举报文章:Java String类的compareTo()方法-简单理解与使用
举报原因:
原因补充:

(最多只允许输入30个字)