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