好的,我在stackOverflow中的第一个问题。
这让我完全不知所措。
Java(我使用的是android Studio),我编写了以下代码:
Integer aNumber = 200;
String aNumberInString;
aNumberInString = Integer.toString(aNumber);
Boolean result;
if(aNumberInString == "200"){
result = true;
} else {
result = false;
}
Log.i("result:",result+"");
好的,逻辑和我的期望是条件是真的......但不!它失败了。
我对此行为感到非常震惊,然后进行了一些调查,并逐步在调试模式下运行代码。
当我达到这个条件时,我会检查" aNumberInString"的值。令我惊讶的是,这就是我发现的:
好的,我认为首先是:" Integer.toString()"做错了。
让我们尝试另一种方式:" String.valueOf()"
同样的!然而,当然没有。
显然失败是因为它比较了不同的角色,在互联网上我找到了解决它的方法,
string.replace ("\\ u0000", "");
但我的问题不是如何修复它,是:
非常感谢大家, 此致,尼古拉斯
答案 0 :(得分:0)
您正在进行参考比较。要比较字符串,您需要调用equals
。通过使用Object执行==
,您要求Java确保它们是同一个对象,而不是它们具有相同的值。
变化:
if(aNumberInString == "200"){
对此:
if(aNumberInString.equals("200") {
或者更好的是,减少NullPointerExcpetion
的可能性:
if("200".equals(aNumberInString))