gpt4 book ai didi

java - 为什么我的字符串到字符串比较失败?

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:04 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,我想在其中检查安装的应用程序名称是否与传递给包含此代码的函数的字符串相匹配。代码和示例如下:

private Boolean checkInstalledApp(String appName){
PackageManager pm = this.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
Boolean isInstalled = false;
for(ResolveInfo info: list) {
if (info.activityInfo.applicationInfo.loadLabel( pm ).toString()==appName){
isInstalled = true;
break;
}
}

return isInstalled;
}

假设您调用了 checkInstalledApp("SetCPU"); 并且手机上的应用名称调用了相同的名称,它应该返回 true。但是,它永远不会。我记录了结果,它应该匹配,但事实并非如此。谁能告诉我为什么这不起作用?

最佳答案

使用字符串的 equals() 方法而不是 == 运算符来比较字符串:

info.activityInfo.applicationInfo.loadLabel( pm ).toString().equals(appName)

在 Java 中,新手最常犯的错误之一是使用 == 来比较字符串。您必须记住,== 比较的是对象引用,而不是内容。

关于java - 为什么我的字符串到字符串比较失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com