' =='检查字符串值时不起作用,但' .equals()'确实如此。谁能告诉我为什么?

时间:2015-08-02 00:03:44

标签: java

import java.util.Scanner; 公共类RandomTest {

public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    String[] alphabets={"a","b"};
    String [] cipher={"b","c"};
    System.out.println("Please enter a letter.");
                String word=input.nextLine();

    for (int i=0;i<2;i++){
        if (word.equals(alphabets[i])){
            System.out.println("Preparing a cipher");
            System.out.println("Here is the cipher: "+cipher[i]);

            }
    }
}
}

上面的代码完全没问题,但是如果我放(word.equals(alphabets[i])),它就不会说word==alphabets[i],而是根本无法工作。使用后者时,程序不会检查输入是否等于数组中的值。为什么会这样?

1 个答案:

答案 0 :(得分:0)

==是一个运算符,用于比较对象在内存中的位置。 equals()Object中定义的用于比较实际内容/值的方法。默认情况下,这两个选项的行为相似,但在比较字符串时,Java的String类会覆盖equals()

将来,请在提问之前进行研究。有很多信息可以在互联网上找到。