字符串比较不正常?

时间:2013-10-06 15:59:17

标签: java string compare reverse

所以我试图让用户输入一个字符串,向后打印然后比较新的字符串以查看它是否是回文...它似乎没有工作和我不确定为什么......

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");
}

感谢您提供帮助,说明为什么这不起作用......

3 个答案:

答案 0 :(得分:2)

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

string.equals(otherString)

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

答案 1 :(得分:0)

您的比较参考(使用==)..使用equals方法比较字符串内容..

答案 2 :(得分:0)

请勿使用==。请改用.equals()

if (word.equals(X)) {
    System.out.println("That word is a palindrome"); 
}