java - String equalsIgnoreCase() 与 JDK 7 Objects.equals(Object, Object)

标签 java string object equals

通过替换以下内容,我是否会丢失任何东西:

    public final boolean testEquals(String left, String right) {
        if ((left == null && right != null) || (left != null && right == null)) {
            return false;
        } else if (left == null && right == null) {
            return true;
        } else {
            return left.equalsIgnoreCase(right);
        }
    }

来自 JDK 7 Objects class :
    public final boolean testEquals(String left, String right) {
        return Objects.equals(left,right);
    }

如果我失去了不区分大小写的功能,则将其替换为
Objects.equals(left.toLowerCase(),right.toLowerCase()); 

足够的?这样做有意义吗?

最佳答案

如果您不仅限于 JDK,您还可以使用

StringUtils.equalsIgnoreCase(CharSequence str1, CharSequence str2)

来自 apache-commons lang这是空安全的,将返回

 StringUtils.equalsIgnoreCase(null, null)   = true
 StringUtils.equalsIgnoreCase(null, "abc")  = false
 StringUtils.equalsIgnoreCase("abc", null)  = false
 StringUtils.equalsIgnoreCase("abc", "abc") = true
 StringUtils.equalsIgnoreCase("abc", "ABC") = true

关于java - String equalsIgnoreCase() 与 JDK 7 Objects.equals(Object, Object),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31833722/

相关文章:

PHP – 慢速字符串操作

string - 用于格式化日期和时间的 Dart 函数

javascript - 使用 getElementById 获取 anchor 标记的对象

c++ - 将 C++ 对象传递给 CUDA 内核

javascript - 更改深层嵌套对象值

java - driver.quit后如何打开chromedriver的新 session ?

java - 如何从静态方法调用非静态方法

java - 使用 Swing Timer 在 GUI 上更新 BufferedImage

Java String.split ("\\s+")

java - 复选框监听器