if else阻止我得错了答案

时间:2015-03-13 15:31:02

标签: java if-statement

我在if else block中比较两个字符串..如果 if 块应该执行,如果它是false else 块应该执行..但是代码总是执行 else 阻止true和&错误的条件......还有我的代码

if(deckey==keystr)
{
.
.
}
else
{
System.out.println("your unauthorised person");
System.exit(0);
}

我的deckey包含字符串值abc123,对于keystr我从这里得到的值也是abc123(我正在通过arraylist)..

ArrayList<Integer> listfkey= new ArrayList<Integer>();
String keystr=" ";
for (int i = 0; i < listfkey.size(); i++) {
dech=(char)listfkey.get(i).intValue();
keystr+=dech;
}

请帮帮我..

3 个答案:

答案 0 :(得分:3)

需要使用.equals方法测试字符串是否相等:

deckey.equals(keystr)

不是==运算符,它测试两个字符串实例是否相同:

deckey==keystr

答案 1 :(得分:0)

原型是一个不同的问题,但对于Java对象,==只有在将对象与自身进行比较时才返回true(相同的内存位置)。对于对象,请使用equals方法或Comparator界面

答案 2 :(得分:0)

==用于比较内存位置,它将适用于某些原始数据

String是object,所以为了比较它我们需要使用.equals()方法 它来自比较者