我如何知道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但是“你输入”没有显示出来。
答案 0 :(得分:5)
您无法使用==
测试字符串是否相等。这只比较了引用(内存地址)。您需要使用String#equals(Object)
。一般来说==
肯定是你不想要的,如果你正在测试相等性,除非你要检查两个变量是否指向相同的实例。这种情况很少发生,因为您通常有兴趣测试值是否相等。
所以你需要做的是:
if(choose[i].equals(check)) {
...
}
答案 1 :(得分:0)
您正在尝试将字符串与==进行比较,后者仅比较引用,而不是值。您想要使用的是
if(check.equals(choose[i]))