我正在检查用于字符串compsrsion的字符串比较方法,并在decomplier中探索字符串类,并且知道基本上有四种方法
equals()
equalsIgnoreCase()
compareTo()
compareToIgnore()
现在我想知道我们使用的两个方法之间的区别是equals()和compareTo(),基本上请告知为什么字符串类保留了这两种方法..
String tv = "Bravia";
String television = "Bravia";
// String compare example using equals
if (tv.equals(television)) {
System.out.println("Both tv and television contains same letters and equal by equals method of String");
}
// String compare example in java using compareTo
if (tv.compareTo(television) == 0) {
System.out.println("Both tv and television are equal using compareTo method of String");
}
输出: -
Both tv and television contains same letters and equal by equals method of String
Both tv and television are equal using compareTo method of String
答案 0 :(得分:2)
equals()
返回boolean
; true
/ false
。字符串A是否等于B?
compareTo()
返回一个整数,不仅表示字符串是否相等,而且表示哪一个“低于”另一个 - “lower”定义为自然字母顺序。
对于两个字符串a
和b
,如果仅a.equals(b)
为a.compareTo(b)
,则0
为真。
例如:
String a = "String1";
String b = "String2";
a.compareTo(b)
将返回一个负整数(不一定是-1
!),因为按字母顺序,字符串“String1”低于“String2”;如果你按升序对两个字符串进行排序,那么“String1”将首先出现。此外,a.equals(b)
将返回false
,因为字符串不相等。
然而:
String a = "Example";
String b = "Example";
在这种情况下,a.compareTo(b)
将返回0
(因为字符串相等),a.equals(b)
将返回true
(同样,因为字符串相等)。
关于“ignoreCase”变体:
String a = "String1";
String b = "string1";
在这种情况下,a.compareToIgnoreCase(b)
将返回0
;那是因为,当忽略大小写时,两个字符串是相同的。此外,出于同样的原因,a.equalsIgnoreCase(b)
将返回0
。
答案 1 :(得分:1)
equals
和equalsIgnoreCase
返回boolean
值,表示“一个与另一个相等,或者不是”
compareTo
和compareToIgnoreCase()
返回三态整数,0
,-1
或1
0
如果它们相等,则按比例1
如果
compareTo*()
的参数在顺序上比在compareTo*()
的对象更大
-1
如果compareTo*()
的参数较小
顺序比您调用compareTo*()
上的对象。答案 2 :(得分:0)
这两种方法都是必需的。 String从Object继承equals,并且在实现Comparable接口时需要compareTo。
答案 3 :(得分:0)
Strings实现Comparable接口,然后绑定它来实现compareTo方法。
可投放广告的界面
当对象包含在任何已排序的集合中时,它便于对象的排序。因此,当您将字符串放入任何已排序的集合(如TreeSet)时,您将如何告诉java如何对对象进行排序。这就是coompareTo()方法的用武之地。它被集合用于对象进行排序。
String tv = "Bravia";
String television = "Bravia";
// String compare example using equals
if (tv.equals(television)) {
System.out.println("Both tv and television contains same letters and equal by equals method of String");
}
// String compare example in java using compareTo
if (tv.compareTo(television) == 0) {
System.out.println("Both tv and television are equal using compareTo method of String");
}
if (tv.compareTo(television) < 0){
System.out.println("tv comes before using compareTo method of String");
}
if (tv.compareTo(television) > 0){
System.out.println("tv comes after using compareTo method of String");
}
答案 4 :(得分:0)
compareTo()
:返回负整数,零或正整数,因为此对象小于,等于或大于指定对象。来自compareTo()
equals()
:equals()方法比较两个对象的相等性,如果它们等于则返回true,返回false source here