compareto返回值,java compare java中compareTo()的返回值 不是-1 ,1 , 0,而是-4587 ,12547 ....... 请问这是什么原因?
compareto返回值,java compare java中compareTo()的返回值 不是-1 ,1 , 0,而是-4587 ,12547 ....... 请问这是什么原因?详细介绍
本文目录一览: compareto怎样比较,返回值是怎么返回的?
compareto就是比较两个数据的大小关系 大于0表示前一个数据比后一个数据大, 0表示相等,小于0表示第一个数据小于第二个数据
java中compareTo()的返回值是什么
compareTo()是两个串对象比较大小,返回一个整数值,如果调用串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值。
首先,我说一下什么是compateTo
compareTo(Object
o)方法是java.lang.Comparable
接口中的方法,当需要对某个类的对象进行排序时,该类需要实现
Comparable
接口的,必须重写public int compareTo(T
o)方法,比如MapReduce中Map函数和Reduce函数处理的
,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable
接口,实现这个接口可同时用于序列化和反序列化。WritableComparable
接口(用于序列化和反序列化)是
Writable接口和Comparable
接口的组合;
其次,看一个例子
@Override
public int compareTo(Object o) {
if(this ==o){
return 0;
}
else if (o!=null && o instanceof User) {
User u = (User) o;
if(id<=u.id){
return -1;
}else{
return 1;
}
}else{
return -1;
}
当两个对象进行比较时,返回0代表它们相等;返回值<0(如例子中返回-1)代表this排在被比较对象之前;反之代表在被比较对象之后
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
返回整数,1,-1,0;返回1表示大于,返回-1表示小于,返回0表示相等。
返回的是一个整数,当两个对象对象相等时返回0,不等时返回-1或者1
compareTo 返回两个字符串在位置 k 处不同的char值
public int compareTo(String anotherString)
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:
this.charAt(k)-anotherString.charAt(k)
如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:
this.length()-anotherString.length()
指定者:
接口 Comparable
中的 compareTo
参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。
java compare java中compareTo()的返回值 不是-1 ,1 , 0,而是-4587 ,12547 ....... 请问这是什么原因?
compareTo(T t)
返回 负整数、零或正整数,根据此对象是小于、等于还是大于指定对象。
并没有一定要返回-1,0,1除非你自己实现Comparable 自己从写这个方法
比如你调用字符串的compareTo()方法
String s1 = "a";
String s2="c";
s1.compareTo(s2);//得到-2说明s1在s2前两位
s2.compareTo(s1);//得到2说明s2在s1后两位
这个接口是对实现他的类自然排序,即常说的字典排序
然后
compareTo()返回的也就是排序位置的关系吧
compareTo()是两个字符串对象比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值。
不是你说的一定是-1,1,0 哦
C# 的 CompareTo 怎么用?
CompareTo 这是字符串比较的函数,用法:
string s1 = "c";
string s2 = "b";
if(s1.CompareTo(s2)==1)
{
}
它有三个返回值~:
当s1>s2时,s1.CompareTo(s2)==1
当s1=s2时,s1.CompareTo(s2)==0
当s1
<s2时,s1.compareto(s2)==-1
以上为例,c的asc大于b的asc,所以返回1
String.CompareTo 方法将此实例与指定的对象或String 进行比较,二者相对值的指示...
if (s.CompareTo("upload") != 1) 就是将S与upload相比较,如果相同则返回假,如果不同则返回真
String.CompareTo 方法将此实例与指定的对象或String 进行比较版,二者相对值的指示。
if (s.CompareTo("upload") != 1) 就是将S与upload相比较,如果相同则返回假,如果不同则返回真。
CompareTo 这是字符串比较的函数,用法:
string s1 = "c";
string s2 = "b";
if(s1.CompareTo(s2)==1)
{
}
有三百个返回值~:
当s1>s2时,s1.CompareTo(s2)==1
当s1=s2时,s1.CompareTo(s2)==0
当s1
<s2时,s1.compareto(s2)==-1
扩展资料:
public int compareTo(IntegeranotherInteger)在数字上比较两个Integer对象。
anotherInteger - 要比较的 Integer。
返回值:如果该 Integer 等于 Integer 参数,则返回 0 值;如果该 Integer 在数字上小于 Integer 参数,则返回值-1;如果 Integer 在数字上大于 Integer 参数,则返回整数1。
参考资料来源:百度百科-compareTo
</s2时,s1.compareto(s2)==-1
</s2时,s1.compareto(s2)==-1
Java 比较两个 带两个小数点的 字符大小。
// 大小规则按ACSIIpublic class T { public static void main(String[] args) { String s1 = "1.0.1"; String s2 = "1.0.2"; int rt = s1.compareTo(s2); if (rt < 0) { System.out.println("s1 < s2"); } else if (rt > 0) { System.out.println("s1 > s2"); } else { System.out.println("s1 = s2"); } }}
public static String compare(String s1,String s2){ return s1.compareTo(s2) == 1? (s1 + " 更大"): s1.compareTo(s2) == -1? (s2 + " 更大"): s1.compareTo(s2) == -0? " 一样大":"无法比较"; } public static void main(String[] args) { String s1 = "1.0.1"; String s2 = "1.0.2"; System.out.println(compare(s1, s2)); }
使用 String.compareTo 方法:
compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)
1、如果字符串相等返回值0
2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)
3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.
例:
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
关于compareto
"aaaaaaaaa".compareTo("b") = -1
since 'a' < 'b'
'邓' might greater than '包'?
compare to:比喻为.
He compared her to a summer day.
他将她比为夏天。
Scientists sometimes compare the human brain to a computer.
科学家有时将人脑比作电脑。
compare 后一般跟with 或者to . 表示比喻或对比,比较之意。 你结合以上例句体会一下好理解一点。
如果是编程里的,那么输出为-1的那个方法CompareTo()用法如下,知道用法了上面问题解决。
格式 int a= 字符串对象A.CompareTo(字符串对象B);
如果a返回0,表示 字符串对象A-字符串对象B=0
也就是字符串对象A=字符串对象
如果a返回1,表示字符串对象A-字符串对象B=1>0
也就是字符串对象A>字符串对象B.
如果a返回-1,.....省略。。
这里注意CompareTo只有3个返回值 0 1 -1,1的意思其实就是大于0,-1就是小于0.
java compareto 是怎么比较的
compareTo()方法很简单就实现这种功能。该方法用于判断一个字符串是大于、等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的顺序决定的。
语法:
Str1.compareTo(Str2);
其返回的是一个int类型值。若Str1等于参数字符串Str2字符串,则返回0;若该Str1按字典顺序小于参数字符串Str2,则返回值小于0;若Str1按字典顺序大于参数字符串Str2,则返回值大于0。
java中字符的compareTo()比较的是什么!
基本类型对比的是数值,Character比较的是值,两者值相等则为0,如果不相等则按照字典顺序比较。
比较两个字符是不是相等,不相等就输出两个字符的ascii码的差值
String 是字符串,它的比较用compareTo方法,它从第一位开始比较,如果遇到不同的字符,则马上返回这两个字符的ascii值差值..返回值是int类型
int 的话 是比大小, 大输出1,小输出-1,相等输出0
他们用的方法名是一样的 但是实际上方法是不一样的。
你看看源码就知道了。
数字之间的比较久很简单,前者大于后者输出是1,相等输出0,小于输出-1
字符串就跟冰枫木同学说的一样
建议你看看源码!
java中的compareTo()比较的是两个字符串的内容是否相同。
使用方法:
String s1="123456";
String s2 ="123456";
boolean eq = s1.compareTo(s2);
返回结果为一个boolean型的对象,表示参加比较的两个对象值是否一样。
谁能详细解析下C#中的CompareTo和Compare的用法
两个函数的功能一样,用法稍有不同,比如:有两个字符串S1和S2,都是string类型,比较两个字符串,分别可以用Compare(S1,S2)和S1.CompareTo(S2),返回值均为-1、0、1。原理如下:先比较两者首字符的大小(按ASCII码顺序)。 一、s1首字符和参数s2的首字符不等: 1、如果s1首字符的ASCII码大于s2首字符的ASCII码,则输出1; 2、如果s1首字符的ASCII码小于s2首字符的ASCII码,则输出-1;二、如果s1首字符和参数s2的首字符相等,则以s1第二个字符和参数s2的第二个字符做比较,以此类推。 直到比较的字符或被比较的字符中有一方比较完了。 1、字符串位数多的,输出1; 2、字符串位数少的,输出-1. 3、两者所有字符串完全相同,输出0.