equals和equalsIgnoreCase方法用于字符串比较,compareTo之类方法用于将Number对象与方法的参数进行比较。主要是针对数值。也可以使用compareTo来按字典顺序比较两个字符串。比较而言equals的效率较高,compareTo其实就是按照编码的数值求差值,根据差值进行比较,它能确定两个String在字典顺序上的前后性,如只是想知道两个值是否一致,两个效果一样。compareTo()用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
boolean equals(Object anObject)
#将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString)
#将此 String 与另一个 String 比较,不考虑大小写。本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
int compareTo(Object o)
#把这个字符串和另一个对象比较。
int compareTo(String anotherString)
#按字典顺序比较两个字符串。
#int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
如下java代码示例:本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
public class StringTest{ public static void main(String[] args){ //equal和equalsIgnoreCase方法 equals(); //compareto和compareToIgnoreCase方法 compareto(); } public static void equals(){ System.out.println("-----------equals------------"); String stra = "letter"; String strb = "letter"; String strc = "Letter"; String strd = new String("letter"); //java中的字符串使用==比较时比较的是引用地址 System.out.println(strb.equals(stra)); System.out.println(strb == stra); System.out.println(strd.equals(stra)); System.out.println(strd == stra); System.out.println("----equalsIgnoreCase:"); System.out.println(strc.equals(stra)); System.out.println(strc.equalsIgnoreCase(stra)); } public static void compareto(){ System.out.println("-----------compareTo------------"); Integer inta = 123; Integer intb = 128; System.out.println(inta.compareTo(intb)); String stra = "123"; String strb = "123a"; System.out.println(stra.compareTo(strb)); stra = "123d"; System.out.println(stra.compareTo(strb)); stra = "123a"; System.out.println(stra.compareTo(strb)); stra = "123A"; System.out.println(stra.compareTo(strb)); System.out.println(stra.compareToIgnoreCase(strb)); } }本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
输出结果:本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
$ javac StringTest.java; java StringTest; -----------equals------------ true true true false ----equalsIgnoreCase: false true -----------compareTo------------ -1 -1 3 0 -32 0本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
在使用compareTo时发现不能使用int inta = 123;后进行比较,因为Int是整型数字,是Java的8个原始数据类型(Primitive Type:boolean、byte、short、char、int、float、double、long)之一,不具有compareTo方法。Java语言虽然号称一切都是对象,但原始数据是例外。而Integer是int对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算,int和字符串之间转换等。
另外可以发现在使用compareTo进行字符串比较和数字比较时结果意义是不一样的,比较数字只比较大小关系得出boolean结果,比较字符串会比较字符的ASCII码值最后得出差值。本文地址:http://47.93.183.36/article/842.html,未经许可,不得转载.
本文地址:http://47.93.183.36/article/842.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |