Object 比较两个对象内部的字符串
我一直在尝试将纸牌对象内部的字符串与其他纸牌对象进行比较,以便在发放扑克牌时检查是否存在重复 除了打印比较语句时,我得到的是Card@97sd829. 我制作了自己的Equals方法,用于比较类内的对象卡,但仍然无效 我尝试过使用equals对象的覆盖,但是我得到一个错误,说它需要在超类中Object 比较两个对象内部的字符串,object,equals,Object,Equals,我一直在尝试将纸牌对象内部的字符串与其他纸牌对象进行比较,以便在发放扑克牌时检查是否存在重复 除了打印比较语句时,我得到的是Card@97sd829. 我制作了自己的Equals方法,用于比较类内的对象卡,但仍然无效 我尝试过使用equals对象的覆盖,但是我得到一个错误,说它需要在超类中 public static boolean Equals(Card a, Card b) { String str1 = a.toString(); String str2 = b.toStr
public static boolean Equals(Card a, Card b) {
String str1 = a.toString();
String str2 = b.toString();
if (str1.equals(str2))
return true;
else
return false;
}
public static boolean checkDuplicate (Card a, Card b, Card c, Card d, Card e){
int num = 5;
boolean bool = true;
if (Card.Equals(a, b)||Card.Equals(a, c)||Card.Equals(a, d)||Card.Equals(a, e)||
Card.Equals(b, c)||Card.Equals(b, d)||Card.Equals(b, e)||Card.Equals(c, d)||
Card.Equals(c, e)||Card.Equals(d, e)); num--;
if (num == 5)
bool = false;
else
bool = true;
return bool;
}
您正在使用Object.class的toString方法获取卡的字符串表示形式 toString的默认实现包含对象的哈希。由于您有两个不同的卡对象,因此这些对象的toString方法会产生不同的输出 更好的方法是在Card类中实现equals。然后你可以检查a.equalsb是否相等 如果你想知道如何实现Card.equals,你应该发布Card类的源代码