java - 当两者的输出相同时,为什么我的 if/else 语句不匹配?

标签 java list if-statement arraylist return-value

        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/

相关文章:

java - 从@OneToMany 关系中删除一个 child

python - 单词和字母列表到字母列表

python - 比单个列一次跨数据框剥离空间的优雅方式

javascript - 条件数组解构

r - 如何创建一个虚拟变量对应于 R 中值的变化

if-statement - 是否可以使用 if 和 while 将所有控制流图翻译回来?

java - 手动实例化@InjectMock 注解字段

java - Java中无参数构造函数和默认构造函数之间的区别

java - 如何建立 TCP 连接并将数据发送到 Android Virtual Device App