gpt4 book ai didi

java - 为什么我的 if 条件比较字符串失败?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:32:02 25 4
gpt4 key购买 nike

此程序执行未进入 if 条件。
请检查我指定的评论。

public static void filterObject(ArrayList<treewalker.VariableNode> variableNodeslist,
ArrayList<treewalker.ObjectNode> objectNodeslist,
ArrayList<treewalker.ClassNode> classNodeslist) {
int i, j;
for (i = 0; i < variableNodeslist.size(); i++) {
for (j = 0; j < classNodeslist.size(); j++) {
String argu1 = variableNodeslist.get(i).typeClass.toString();
String argu2 = classNodeslist.get(j).name.toString();
System.out.println(argu1);
System.out.println(argu2);
if (argu1 == argu2)//this if loop is not getting executed
{
System.out.println("inside for");
}
System.out.println("hi");
}
}
}

最佳答案

简答:
argu1.equals(argu2) 而不是 argu1 == argu2


更长的答案:
Java 中的 == 运算符进行引用比较。

你想做字符串比较,使用:

if (argu1.equals(argu2))


在某些情况下,== 运算符可能会进行相等性检查,例如:

String var1 = "abc";
String var2 = "abc";

String result = ("abc" == "abc");

在这种情况下,结果是 true,乍一看似乎是相等比较,但实际上是编译器优化,其中 var1var2 共享相同的引用。

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

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