Java:如何将字符串与toString()的返回进行比较

Java:如何将字符串与toString()的返回进行比较

问题描述:

基本上,当我尝试使用.equals将类与字符串进行比较时,它始终返回false。Java:如何将字符串与toString()的返回进行比较

例如:

myClass.java

public String toString() 
{ 
    return "Apple"; 
} 

main.java

System.out.println(myClass.equals("Apple")); 

将打印 “假”。

我应该用什么来比较myClass和字符串?

+2

'myClass.toString()。equals(“Apple”)'。 –

+0

你想要比较什么?课堂名称或其他? 请用实例详细说明,哪种情况是真的,哪种情况是错误的。 – Nin

+0

覆盖方法'toString()'和'equals()'然后使用equal()进行比较 –

你需要重写定义形成Object类:

@Override 
public String toString() { 
    return "Apple"; 
} 

,然后比较

System.out.println(myClass.toString().equals("Apple")); 

其中myClass应使用code conventions一个的MyClass实例。

你应该调用toString,而不是直接class。

myClass mc= new myClass(); 
if(mc.toString().equals("Apple"){ 

} 

顺便说一句,Java类名称以Capitals开头。例如。 MyClass

+0

我的实际类确实以captial开头,这只是一个匆忙输入的示例(对不起)。 这个作品谢谢!你知道我为什么需要这样做,但是如果我打印课程,它会打印“Apple”? – Dasonic

+0

打印时,它会自动调用.toString(),但不会在其他位置调用。 –

我认为toString会被自动调用的错误。

对于任何人想知道:

System.out.println(myClass.toString().equals("Apple")); 

试试这个办法...对我的作品很好..

@Override 
    public String toString() { 
     return "Address: " + address+ ", streetName=" + stName ; 
    } 

你实际上可以实现相当于 -

public boolean equals(Object object) { 
    if(object instanceof String) { 
     return ((String)object).equals(mName); 
    } 
    return false; 
} 

MNAME是包含其名称的类的成员。