Java compareTo字符串比较函数



1. 调用方式:

int compareTo(String) compareTo函数可以直接使用String类型的变量调用,参数是需要比较的另一个字符串,返回值是一个int类型。

2. 关于返回值的三种判断

s1.compareTo(s2)//s1是原字符串,s2是参数字符串 返回值计算方式:原减参

  • 返回0
    • 两个字符串相同
  • 返回正负整数:

    • 原字符串中的所有字符,按照顺序都包含在参数字符串中时,返回的是,原字符串字符数减去参数字符串字符数。
    1
    2
    3
    4
    5
    
    String s1 = "Java";
    String s2 = "JavaScript";
    System.Out.Println(s1.compareTo(s2));  //输出-6
    //解读:因为s1是原字符串,并且其中的4个字符全部在参数字符串s2中可以找到,
    // 所以在使用compareTo函数的时候,就是源字符串的长度4减去参数字符串的长度10等于-6
    • 原字符串中有1个或以上的字符并不在参数字符串中时,返回的是,两个字符串中不相同的第一个字符的ASCII码(十进制表示)相减的值。
    1
    2
    3
    4
    5
    6
    
    String s1 = "Javac";  
    String s2 = "JavaScript";
    System.Out.Println(s1.compareTo(s2));  //输出16
    // 解读:字符串s1中的第五个字符“c”对应的是s2中的“S”,
    // 所以两个是不包含的关系,使用ASCII码的十进制表示相减。
    // “c”的ASCII码为99,“S”的ASCII码为83,利用“原减参”的规则,99-83=16

使用人话说: 我找你想比较一下我们俩拥有的水果是不是一模一样的,我有4个苹果,你也有4个苹果,但是你还有3个梨,这时候,我只能表示我比你少3个数量的水果。 过了一会儿,我从家里拿来一个橘子,加在一起和你比较了,这时候,橘子是只有我有,而你没有,这时候我才不管你有梨我没梨了,我就非得用这个橘子和你的梨比较价格。