3

我很难使用 Java 比较 Android 中的两个字符串,我正在做的是运行 HTTP 获取请求,该请求返回是或否,并据此决定是否启动新活动。

我正在 Async onPostExecute 方法中执行字符串比较,虽然 HTTP 返回的字符串是 yes,但它对我不起作用。

这是代码

        protected void onPostExecute(String result) {
        progressDialog.dismiss();
        if(result.equals("yes"))
        {
            Intent toDashboard = new Intent(LoginActivity.this,Dashboard.class); 
            startActivity(toDashboard);
            Toast.makeText(LoginActivity.this, "It was yes", Toast.LENGTH_LONG).show();
        }
        else
        {
            Toast.makeText(LoginActivity.this, result, Toast.LENGTH_LONG).show();
        }
    }

虽然返回的字符串是 yes,但它仍然会跳过 if 语句并创建一个显示“Yes”的 toast。

我还尝试了一些其他方法来匹配字符串,它们都在这里

if(result == "yes")
if(result.toString().equals("yes"))
if(result.contentEquals("yes"))
if(result.equalsIgnoreCase("yes"))

它们都不适合我

4

2 回答 2

8

结果中可能有一些空白。

尝试修剪它。

result.trim().equals("yes")
于 2013-01-13T20:58:16.440 回答
2

尝试这个

str1.toLowerCase().contains(str2.toLowerCase())

它对我有用

于 2014-10-08T04:28:07.050 回答