Android字符串.equals方法不起作用

时间:2011-07-22 21:00:24

标签: java android string

我正在学习android开发。我已经能够成功创建一个登录类,我的应用程序检查我的mysql数据库,看看数据库中是否存在用户的详细信息。如果用户的详细信息存在于数据库中或“不正确”

,则php文件发布“正确”
private void checkResult(){
    if(getResults().equals("correct")){
            //do some stuffs

    }
    else{

        displayDialog(getResults());
    }   
}

getResults()方法返回String(来自服务器的响应)。但是,字符串比较似乎不起作用,因为当服务器返回“正确”作为响应时,if条件总是为false。我确认通过使用下面的方法,执行false语句,但alertDialog中的msg是“正确的”。请任何人都可以帮忙,似乎无法理解为什么代码行为不端。

    public void displayDialog(String msg){

    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Authetication Failed!");
    alertDialog.setMessage(msg);
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // do something when the user presses OK (place focus on weight input?)
        }
    });
    alertDialog.setIcon(R.drawable.icon);
    alertDialog.show();

}

3 个答案:

答案 0 :(得分:5)

我之前遇到过同样的问题。请尝试使用getResults().trim().equals()

答案 1 :(得分:5)

我强烈怀疑该字符串包含“不可见”字符,例如Unicode U + 0000或者换行符。

我建议你通过记录字符串的长度和每个字符的Unicode值来诊断它:

String results = getResults();
for (int i = 0; i < results.length(); i++)
{
    // Whatever the relevant log call is
    log("Got character: " + (int) results.charAt(i));
}

似乎更可能是问题,而String.equals真的被打破了。

答案 2 :(得分:0)

也许响应中包含一些<br blaa bla html标记。这是我的第一次。记录输出。 Log("RESPONSE", getResults());