Java String compareTo()

compareTo() 方法用于两种方式的比较:

  • 字符串与对象进行比较。
  • 按字典顺序比较两个字符串。

1 语法

public int compareTo(String anotherString)  

2 参数

anotherString:表示要与当前字符串进行比较的字符串

3 返回值

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

  • 如果参数字符串等于此字符串,则返回值 0;
  • 如果此字符串小于字符串参数,则返回一个小于 0 的值;
  • 如果此字符串大于字符串参数,则返回一个大于 0 的值。

4 compareTo()内部源码

public boolean equals(Object anObject) {  
       if (this == anObject) {  
           return true;  
       }  
       if (anObject instanceof String) {  
           String anotherString = (String) anObject;  
           int n = value.length;  
           if (n == anotherString.value.length) {  
               char v1[] = value;  
               char v2[] = anotherString.value;  
               int i = 0;  
               while (n-- != 0) {  
                   if (v1[i] != v2[i])  
                           return false;  
                   i++;  
               }  
               return true;  
           }  
       }  
       return false;  
}  

5 compareTo()示例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java String.compareTo方法的例子
 */
public class Demo{

    public static void main(String args[]){
        String s1="hello";
        String s2="hello";
        String s3="meklo";
        String s4="hemlo";
        String s5="flag";
        System.out.println(s1.compareTo(s2));//0
        System.out.println(s1.compareTo(s3));//-5
        System.out.println(s1.compareTo(s4));//-1
        System.out.println(s1.compareTo(s5));//2
    }
}

输出结果为:

0
-5
-1
2

6 compareTo()示例2

如果将字符串与NULL或空字符串进行比较,它将返回字符串的长度。如果第二个字符串为空,则结果为正。如果第一个字符串为空,则结果为负。

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java String.compareTo方法的例子
 */
public class Demo{

    public static void main(String args[]){
        String s1="hello";
        String s2="";
        String s3="me";
        System.out.println(s1.compareTo(s2));
        System.out.println(s2.compareTo(s3));
    }
}

输出结果为:

5
-2

 

热门文章

优秀文章