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));
最佳答案
String
类上的 equals()
方法对两个字符串的内容进行逐字符比较。
就在进行比较之前,您将打印出字符串,任何人都可以很容易地看到它们非常不同。您输入 if else
block 的 else
部分的原因是 if (List1.get(u).equals(List6))
总是评估 false。
[alan]
和 alan
不是等价的字符串,当使用 .equals()
进行比较时,它们将返回 false
.
关于java - 当两者的输出相同时,为什么我的 if/else 语句不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20390505/