代码之家  ›  专栏  ›  技术社区  ›  Chris Douglas

将字符串数组的两个元素与.equals()[closed]进行比较

  •  0
  • Chris Douglas  · 技术社区  · 8 年前

    我正在做一个项目,我需要比较同一数组的两个元素

    private void checkImports()
    {
        //import tester
        for(int i = 0; i<theClass.length;i++)
        {   
            for(int j = 0; j<i; j++)
                {
                    if(theClass[i].equals(theClass[j]))
                        {
                                System.out.println("There is a double import at line " +i);
                                addError("Double import at line ",i)
                        }
                }
        }
    }
    

    数组中填充了以下字符串:

    "import java.x;" //0
    "import java.y;" //1
    "import java.z;" //2
    "import java.x;" //3
    

    由于某种原因,当我调用equals()方法时,当I=3和j=0时,它的计算结果永远不会为true。 任何关于为什么不调用addError方法的解释都将非常感激

    1 回复  |  直到 8 年前
        1
  •  1
  •   Thomas    8 年前

    1. i==3 j==0 从未实际执行过(即使您认为是)。
    2. 价值观 theClass[0] theClass[3] 实际上并不相等(即使您认为它们是相等的)。

    您可以很容易地检查这两种情况,例如在调试器的帮助下。如果您不喜欢使用调试器,还可以插入一些 System.out.println 语句来检查变量的值 i j theClass[0].equals(theClass[3]) 实际评估为 true .