-1

我编写了一个简单的程序来检查输入是否是字母 O。出于某种原因,即使我键入字母 O,程序也会输出输入不是字母 O。我使用 Eclipse 调试器来确保输入变量实际上等于“O”。

import java.util.Scanner;

public class scannerTest {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Give your input. I will tell you if your input is 'O' or not");
    String input = scan.next();
    if (input == "O"){
        System.out.println("Your input was 'O'");
        }
    else {
        System.out.println("Your input was not 'O'");
    }
}

}
4

2 回答 2

3

您需要使用equals方法而不是==运算符,如下所示:

if(input.equals("O"))

Using==比较字符串对象的内存地址而不是它们的值,因此为了==返回true,您必须比较相同的字符串对象。

于 2013-05-21T02:00:18.913 回答
1

==运算符检查对象的相等性而不是字符串的值。

取而代之的是,使用:

if(input.equals("O")){
   //Code here
}
于 2013-05-21T02:03:19.953 回答