getString()string.xml比较

时间:2012-07-24 16:55:15

标签: android getstring

我在比较字符串时遇到问题:我在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;     
    }   

}

3 个答案:

答案 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")) {
}