我在比较字符串时遇到问题:我在string.xml中得到字符串值“activation”。当我将它与具有相同值的字符串值进行比较时,结果始终为false(在string.xml activation = test中)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MyNameApp</string>
<string name="activation">test</string>
</resources>
public class CheckGenuine {
public static String cod;
public static String app;
public static Boolean chk(Context ctx) {
Boolean ret;
cod = ctx.getString(R.string.activation);
app = ctx.getString(R.string.app_name);
if (cod == "test") {
Toast.makeText(ctx, "True cod = " + cod, Toast.LENGTH_LONG).show();
ret = true;}
else {
Toast.makeText(ctx, "False cod = " + cod, Toast.LENGTH_LONG).show();
ret = false;}
// *** why ret is always false and Toast shows "False cod = test" ????????????????
return ret;
}
}
答案 0 :(得分:4)
您应该使用.equals()
来比较字符串值,而不是==
运算符。 This article很好地解释了差异。
答案 1 :(得分:1)
使用 if (cod.equals("test")) {
==
- &gt;&gt;比较字符串引用(内存位置)
.equals()
比较字符串值。
答案 2 :(得分:0)
字符串比较由Java中的equals()函数执行, 如果您使用“ ==操作”,则意味着要按2个对象本身进行比较,而不要按值进行比较。
String value = "myString"
if (value.equals("myString")) {
}