繁体   English   中英

Android string.equals 方法不起作用

[英]Android string .equals method not working

我正在学习android开发。 我已经能够成功登录 class,我的应用程序会检查我的 mysql 数据库以查看用户的详细信息是否存在于数据库中。 如果数据库中存在用户的详细信息,则 php 文件发布“正确”或“不正确”

private void checkResult(){
    if(getResults().equals("correct")){
            //do some stuffs

    }
    else{

        displayDialog(getResults());
    }   
}

getResults() 方法返回字符串(来自服务器的响应)。 但是,字符串比较似乎不起作用,因为当服务器返回“正确”作为响应时,if 条件总是显示为假。 我确认通过使用下面的方法,执行了错误的语句,但是 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();

}

我以前也遇到过同样的问题。 尝试getResults().trim().equals()代替

我强烈怀疑该字符串包含“不可见”字符,例如 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真的被破坏相比这似乎更有可能是问题所在。

也许响应包含一些<br blaa bla html 标签。 这是我的第一个想法。 记录 output。 Log("RESPONSE", getResults());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM