Android:字符串等于且包含不匹配

Jho*_*rra -1 java string android

我正在测试Android应用程序的JSON功能,并具有以下JSON对象.

{"result":"fail"}
Run Code Online (Sandbox Code Playgroud)

然后我使用以下代码来获取我的值:

JSONObject jObject = new JSONObject(ReturnValue); //Return value is what's shown above
String r = jObject.getString("result");
Run Code Online (Sandbox Code Playgroud)

然后使用以下我没有得到匹配

if(r.trim() == "fail")
Run Code Online (Sandbox Code Playgroud)

我把它写到屏幕上只是为了确保这个:

et.setText("-" + r + "-");
Run Code Online (Sandbox Code Playgroud)

这导致 - 失败 -

我不明白为什么这不匹配.如果我使用r.Contains它返回true,但我不能将它用于我的检查.

Edu*_*zer 5

使用

if(r.trim().equals("fail"))
Run Code Online (Sandbox Code Playgroud)

比较字符串.


Joh*_*n S 5

使用等于.equals而不是==.这是因为在Java中,如果使用的==话,可以将Object指针相互比较.在源代码中,String他们覆盖了equals方法,因此他们改为比较字母.

您无法在Java中覆盖运算符.

此外,这是常规的,equals如果您不想检查您正在比较的引用实际指向堆中的同一对象,则始终用于任何对象比较.