Java中的compareTo()函数

Java中的compareTo()函数,java,string,string-comparison,Java,String,String Comparison,我已经写了下面的代码 import java.util.*; class compare{ public static void main(String []args){ String s1="java"; String s2="javaProgramming"; System.out.println(s1.compareTo(s2)); } } 此代码的输出为-11。由于java中没有用于终止字符串的字符,“java”中的哪个字

我已经写了下面的代码

import java.util.*;
class compare{
    public static void main(String []args){
        String s1="java";
        String s2="javaProgramming";
        System.out.println(s1.compareTo(s2));
    }
}

此代码的输出为-11。由于java中没有用于终止字符串的字符,“java”中的哪个字符与“javaProgramming”中的“P”相比较

不将“p”字符与第一个
字符串中的任何内容进行比较

它仅比较两个字符串的前4个字符,这两个字符串彼此相等

然后返回第一个字符串的长度减去第二个字符串的长度

public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;

    int k = 0;
    while (k < lim) {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) {
            return c1 - c2;
        }
        k++;
    }
    return len1 - len2;
}
public int compareTo(字符串另一个字符串){
int len1=value.length;
int len2=另一个string.value.length;
int lim=Math.min(len1,len2);
字符v1[]=值;
char v2[]=另一个string.value;
int k=0;
while(k
由于第二个
字符串
较长,而第一个
字符串
包含在第二个
字符串中,因此返回任何负值都可以,因为较短的
字符串
应按字典顺序排在第一位。

如中所示,当每个字符串的长度达到最小值时,比较停止。如果通过该点所有字符都相等,则返回长度差

让我看看你怎么说

按字典顺序比较两个字符串。比较是基于 字符串中每个字符的Unicode值。字符序列 由该字符串对象表示的对象按字典顺序与 由参数字符串表示的字符序列。结果是一场灾难 负整数,如果此字符串对象按字典顺序位于 参数字符串。如果此字符串 对象按字典顺序跟随参数字符串。结果是 如果字符串相等,则为零;compareTo在 equals(Object)方法将返回true

这是词典排序的定义。如果有两个字符串 不同,那么它们在某个索引中有不同的字符 这是两个字符串的有效索引,或者它们的长度为 不同,或者两者都不同。如果它们在一个或多个位置具有不同的字符 指数位置,设k为此类指数的最小值;然后是字符串 其在位置k处的字符具有较小的值,由 使用<运算符,按字典顺序优先于另一个字符串。在里面 在这种情况下,compareTo返回两个字符的差值 两个字符串中位置k处的值--即值:

 this.charAt(k)-anotherString.charAt(k)
 this.length()-anotherString.length()
如果没有不同的索引位置,则较短的 字符串按字典顺序位于较长字符串之前。在这种情况下,, compareTo返回字符串长度之差,即 是,值为:

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

如果你对细节感兴趣,也可以认为合理的比较是语言依赖的,这是基于语言环境的:Collator。它可以决定一个顺序,比如
o