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));
答案 0 :(得分:1)
equals()
类上的String
方法是两个字符串内容的字符比较。
在你进行这种比较之前,你正在打印字符串,任何人都可以很容易地看到它们是非常不同的。您输入else
块的if else
部分的原因是因为if (List1.get(u).equals(List6))
始终评估为false。
[alan]
和alan
不是等效字符串,使用.equals()
进行比较时,会返回false
。
答案 1 :(得分:0)
List1.get(u)是一个String。
List6是一个ArrayList。
String永远不会等于ArrayList
也许您需要更改以下代码:
if (List1.get(u).equals(List6.get(0))){
System.out.println("author name checked!");
} else {
System.out.println("wrong author name!");
}