comparetoignorecase,compareTo 和comparetoIgnorecase有啥区别
朋友们,你是否曾想过深入了解comparetoignorecase和compareTo 和comparetoIgnorecase有啥区别的内涵?在本文中,我将为你详细解析这两个话题,希望能给你带来全新的视角和思考。
compareto java
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)方法注意要非空判断,这里实例就不判断了。
java中compareToIgnoreCase大小是怎么比较的
如果其中一个或者两个String都比较完了还没有同样的char的话,那就return两个String的长度差距。 compareToIgnoreCase public int compareToIgnoreCase(String str)按字典顺序比较两个字符串,不考虑大小写。此方法返回一个整数,其符号与使用规范化的字符串调用 compareTo所得符号相同,规范化字符串的大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character))消除。注意,此方法不考虑语言环境,因此可能导致在某些语言环境中的排序效果不理想。java.text包提供 Collators完成与语言环境有关的排序。参数:str-要比较的 String。
Java中CompareTo()方法的问题
楼上正解,应为um.getUserId()内容已经实现compareTo接口功能
Java.lang.String API中有定义
compareTo
public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode值。将此 String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo只有在方法 equals(Object)返回 true时才返回 0。
compareTo 和comparetoIgnorecase有啥区别
compareTo:比较
compareToIgnoreCase:比较,忽略大小写
如果参数字符串等于此字符串,则返回 0值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0的值。
例:字典的顺序:0123456ABCabc大写字母在小写字母前
String query= new String();
String number= new String();
int i= 0;
query="a";
number="1";
i= query.compareTo("A");(a在A之后,返回大于0的值)
i= number.compareTo("2");(1在2之前,返回小于0的值)
文章到此结束,如果本次分享的comparetoignorecase和compareTo 和comparetoIgnorecase有啥区别的问题解决了您的问题,那么我们由衷的感到高兴!