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

を使用する==と、値ではなく文字列オブジェクトのメモリ アドレスが比較されるため、==返されるためにtrueは、同じ String オブジェクトを比較する必要があります。

于 2013-05-21T02:00:18.913 に答える
1

==演算子は、文字列の値ではなくオブジェクトの等価性をチェックします。

その代わりに、次を使用します。

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