List6 = new ArrayList<String>();
        List6.add(driver.findElement(By.xpath(".//*[@name='authorName']")).getAttribute("value"));
        System.out.println("List6 : " +List6);
        System.out.println("List1 : " +List1.get(u));
        if (List1.get(u).equals(List6)){
            System.out.println("author name checked!");
        } else {
            System.out.println("wrong author name!");
        }


为什么总是用else语句返回我?我打印的清单6和1都给了我相同的回报

这是结果

List6 : [alan]
List1 : alan
wrong author name!


我的清单1阵列

[alan, ben, chris, dawn, eva, fann, grace, helen, ian, jag, ken, lyn, stephen]
for (int u = 0; u < List1.size(); u++) {
            System.out.println(List1.get(u));

最佳答案

equals()类上的String方法是两个字符串内容的逐字符比较。

在进行比较之前,您正在打印字符串,任何人都可以很容易地看到它们的不同。之所以输入else块的if else部分,是因为if (List1.get(u).equals(List6))总是评估为false。

[alan]alan不是等效的字符串,并且使用.equals()比较时,它们将返回false

08-24 17:36