我在java中输了一个字母

时间:2013-04-02 17:06:30

标签: java

我如何知道String字母是否等于char数组

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但是“你输入”没有显示出来。

2 个答案:

答案 0 :(得分:5)

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

所以你需要做的是:

if(choose[i].equals(check)) {
   ...
}

答案 1 :(得分:0)

您正在尝试将字符串与==进行比较,后者仅比较引用,而不是值。您想要使用的是

if(check.equals(choose[i]))