Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 期望值,错误的结果_Java_Android - Fatal编程技术网

Java 期望值,错误的结果

Java 期望值,错误的结果,java,android,Java,Android,在阅读了一些关于我的应用程序的统计数据后,我发现更新75%的用户需要一个多月的时间。因为所有的更新都非常重要,所以我会制作一个应用程序内警报,告诉用户有一个待更新 有一个包含实际应用程序版本(18)的文本文件,存储在通过DownloadText()方法获取的Web服务器中。此数字位于isupdateText中,并使用子字符串(1,3)从不可显示的字符中提取。所以基本上,只剩下18个了 但我的问题是:isupdatext==“18”返回false,而它本不应该返回false private cla

在阅读了一些关于我的应用程序的统计数据后,我发现更新75%的用户需要一个多月的时间。因为所有的更新都非常重要,所以我会制作一个应用程序内警报,告诉用户有一个待更新

有一个包含实际应用程序版本(18)的文本文件,存储在通过
DownloadText()
方法获取的Web服务器中。此数字位于
isupdateText
中,并使用
子字符串(1,3)
从不可显示的字符中提取。所以基本上,只剩下18个了

但我的问题是:
isupdatext==“18”
返回false,而它本不应该返回false

private class GetUpdate extends AsyncTask<Void, Void, Void>
{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Toast.makeText(getApplicationContext(), "Vérification de mise à jours", Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onPostExecute(Void result) {

        /** For debug reference*/
        Toast.makeText(getApplicationContext(), "*" + isUpdatetxt + "*" + " " + (isUpdatetxt.length()), Toast.LENGTH_LONG).show(); 
        if(isUpdatetxt == "18"){
            alertDialog.show();
        }
    }

    @Override
    protected Void doInBackground(Void... params) {
        isUpdatetxt = DownloadText(updateURL);
        isUpdatetxt = isUpdatetxt.substring(1, 3);
        return null;
    }

}
私有类GetUpdate扩展异步任务
{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
Toast.makeText(getApplicationContext(),“Vérification de miseájours”,Toast.LENGTH_LONG.show();
}
@凌驾
受保护的void onPostExecute(void结果){
/**供调试参考*/
Toast.makeText(getApplicationContext(),“*”+isUpdateText+“*”+”+(isUpdateText.length()),Toast.length_LONG.show();
如果(isUpdateText==“18”){
alertDialog.show();
}
}
@凌驾
受保护的Void doInBackground(Void…参数){
isUpdateText=下载文本(updateURL);
isupdateText=isupdateText.substring(1,3);
返回null;
}
}

如果要在Java中比较字符串,应该使用.equals()

在Java中将字符串与==进行比较时,将比较引用

因此,您的if语句将类似于:

if(isUpdatetxt.equals("18")){
    alertDialog.show();
}

如果要在Java中比较字符串,则应使用.equals()

在Java中将字符串与==进行比较时,将比较引用

因此,您的if语句将类似于:

if(isUpdatetxt.equals("18")){
    alertDialog.show();
}

只有一种方法可以找出为什么
“isupdateText
不等于“18”。。。通过使用调试语句、日志条目或其他机制,找出它真正包含的内容。使用调试程序使我认为我可以将我的数字解析为我应该首先执行的int。感谢您的时间:)只有一种方法可以找出为什么
'isupdateText
不等于“18”。。。通过使用调试语句、日志条目或其他机制,找出它真正包含的内容。使用调试程序使我认为我可以将我的数字解析为我应该首先执行的int。谢谢你的时间:)我喜欢C#<代码>=实际上可以像您所期望的那样处理字符串。我喜欢C#的一个方面<代码>=实际上可以像您期望的那样处理字符串。