compareto java

作者:原创时间:2022-03-21
文档

compareto java是什么,让我们一起了解下?

compareto java是从数字上比较两个Double对象。在应用到基本double值时,通过此方法进行的比较与通过Java语言的数值比较运算符(<、<=、== 和 >= >)进行的比较。

一. 在java中compareto的详细方法介绍如下:

1、返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值。

String a1 = "a";
String a2= "c";
System.out.println(a1.compareTo(a2));//结果为-2

2、即参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值。

String a1 = "aa";
String a2= "ad";
System.out.println(a1.compareTo(a2));//结果为-3

3、如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。

String a1 = "aa";
String a2= "aa12345678";
System.out.println(a1.compareTo(a2));//结果为-8

4、返回为正数表示a1>a2, 返回为负数表示a1。

5、数字类型不能用compareTo,nt跟int的比较不能用compareTo方法,直接用大于(>)小于。

int num1 = 4;int num2 = 5;
num1.compareTo(num2);//Cannot invoke compareTo(int) on the primitive type int

你可以先把你的int型变量转换成String再进行比较。

int num1 = 4;int num2 = 5;//parse int to String
System.out.println((num1+"").compareTo(num2+""));//-1
System.out.println(new Integer(num1).toString(). compareTo(new Integer(num2).toString()));//-1
System.out.println(String.valueOf(num1).compareTo(String.valueOf(num2)));//-1

6、compareToIgnoreCase忽略大小写。

不考虑大小写,按字典顺序比较两个字符串。此方法返回一个整数,它的正负号是调用 compareTo 的正负号,调用时使用了字符串的规范化版本,其大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。

注意,此方法不 考虑语言环境,因此可能在某些特定的语言环境中产生不理想的排序。java.text 包提供 Collators 来完成语言环境敏感的排序。

7、int型可以直接比较,所以没有用到compareTo比较,如果声明的是Date、String、Integer、或者其他的,可以直接使用compareTo比较。

Integer n1 = 5;
Integer n2= 6;
System.out.println(n1.compareTo(n2));//-1

二. Comparable接口中的compareTo,compareTo方法内必须做非空判断(规范问题),当然int类型就不用了。

注意事项:

1、模型必须实现Comparable接口。

2、Collection.sort(list)会自动调用compareTo,如果没有这句,list是不会排序的,也不会调用compareTo方法。

3、如果是数组则用Arrays.sort(a)方法注意要非空判断,这里实例就不判断了。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
被删的微信聊天记录怎么找回来 continue java django java 微信怎么群发消息给多人 double java dozer java eclipse创建java arrays java awesome java 小程序和app的区别 enum java excel读取java extend java extends java false是java关键字吗 爱奇艺黄金会员和星钻会员的区别 field java foreach java for循环java gateway java cmake java class转java character java callable java qq实名认证怎么解除 calendar java cache java c#调用java接口 c#调用java brew java boolean java bitset java axis java asterisk java assert java 怎样改抖音名字的昵称 aspect java ansible java ajax java antlr java