代码之家  ›  专栏  ›  技术社区  ›  paul

字符串比较:EqualSignoreCase失败,但==正在传递

  •  0
  • paul  · 技术社区  · 6 年前

    我尝试过:

    String test = "racecary";
    
    StringBuilder stringBuilder = new StringBuilder(test);
    System.out.println(stringBuilder.reverse()+" -------------");
    if (stringBuilder.reverse().toString().equalsIgnoreCase(test)) {
        System.out.println("Pass");
    }else {
        System.out.println("Fail");
    }
    

    它总是打印通行证,即使我放错了位置 racecar ,但当我使用 == 代替 .equalsIgnoreCase .

    我做错什么了吗? 我已经完成了跟踪,但没有得到答案。

    JAVA .equalsIgnoreCase not working

    不工作的均衡器

    1 回复  |  直到 6 年前
        1
  •  1
  •   John Kugelman Michael Hodel    6 年前

    StringBuilder.reverse() 就地修改生成器。测试打印输出导致字符串反转两次,使其保持不变。去掉打印输出,代码将按预期工作。