我在使用方法backwards()时需要输出true或false的程序,指示字符串是否向后...但是当它应该为真时它会一直显示false。 ..
public class StringImproved
{
private String word;
public StringImproved(String word)
{
this.word = word;
}
public String getWord()
{
return(this.word);
}
public void setWord(String word)
{
this.word = word;
}
public int size()
{
return(this.word.length());
}
public boolean backwards(String word)
{
String backwards = "";
for(int i = getWord().length() - 1; i >= 0; i--)
{
backwards += getWord().charAt(i);
}
if(backwards == word)
{
return true;
}
else return false;
}
}
public class test
{
public static void main(String [] args)
{
StringImproved si=new StringImproved("lag");
System.out.println(si.backwards("gal"));
}
}
答案 0 :(得分:2)
在这一行:
if(backwards == word)
您需要使用equals
代替==
:
if(backwards.equals(word))
这是因为==
只检查backwards
和word
变量是否指向同一个对象,而equals
检查两个变量指向的对象是否有相同的内容。