-1

我怎么知道字符串字母是否等于字符数组

String[] choose = {"a","d","t","b","s","f","x"};
    String check;
    boolean error = false;

        System.out.print("Enter");

        Scanner sn = new Scanner(System.in);    
         check = sn.nextLine();
        for (int i = 0 ; i < choose.length;i++){

            if(choose[i] == check){
                System.out.print("you entered" + choose[i]);
                break;
            }
        }

我所做的是它没有确认我输入了字母 a 但“你输入了”没有出现。

4

2 回答 2

5

您不能使用==. 那只比较引用(内存地址)。你需要使用String#equals(Object). 一般来说,如果您正在测试相等性,==那肯定是您不想要的,除非您正在检查两个变量是否指向同一个实例。这种情况很少发生,因为您通常对测试是否相等感兴趣。

所以你需要做的是:

if(choose[i].equals(check)) {
   ...
}
于 2013-04-02T17:07:59.820 回答
0

您正在尝试使用 == 比较字符串,它只比较引用,而不比较值。你想用的是

if(check.equals(choose[i]))
于 2013-04-02T17:10:36.693 回答