0

所以我试图让用户输入一个字符串,将其向后打印,然后比较新字符串以查看它是否是回文......它似乎不起作用,我不知道为什么。 ..

public static void main(String[] args) {
    Scanner input = new Scanner (System.in);
    System.out.print("Enter a word: ");
    String word = input.next();
    StringBuilder drow = new StringBuilder(word);
    drow.reverse();
    System.out.println(drow);
    System.out.print(" ");
    String X = drow.toString();
    if (word == X) {
        System.out.println("That word is a palindrome"); 
} else {
    System.out.println("That word is not a palindrome");
}

感谢您对为什么这不起作用的任何帮助...

4

3 回答 3

2

word == X询问它们是否实际上是相同的字符串(即它们是指向内存中相同对象的两个引用),而不是它们是否完全相同(即恰好包含相同字母的两个不同字符串),你想要

string.equals(otherString)

我用这个比喻是同卵双胞胎。有两个同卵双胞胎。== 询问他们是否是同一个人。.equals() 询问它们是否看起来相同

于 2013-10-06T16:01:31.397 回答
0

您的比较引用(通过使用 ==).. 使用 equalsTo 方法比较字符串内容..

于 2013-10-06T16:01:34.667 回答
0

不要使用==. 改用.equals()

if (word.equals(X)) {
    System.out.println("That word is a palindrome"); 
}
于 2013-10-06T16:02:48.780 回答