Java 空字符串等于结果

新手上路,请多包涵

请帮助我 java 中的 string.equals 如何处理空值?异常有问题吗?三种情况:

 boolean result1,result2, result3;

    //1st case
    String string1 = null;
    String string2 = null;
    result = string1.equals(string2);
    //2nd case
    String string1 = "something";
    String string2 = null;
    result2 = string1.equals(string2);
    //3rd case
    String string1 = null;
    String string2 = "something";
    result3 = string1.equals(string2);

结果的价值是什么?我期望这个值:

结果 1 为真;

结果 2 为假;

结果 3 为假;

原文由 user1097772 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 634
2 个回答

如果实例是 null ,则不能使用取消引用(点,’.‘)运算符访问实例变量或调用实例上的方法。这样做会产生 NullPointerException

通常的做法是使用您知道为非空的内容进行字符串比较。例如, "something".equals(stringThatMayBeNull)

原文由 sjr 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 JDK 7 或更高版本,请使用 Objects.equals() 比较字符串或任何其他对象。它将处理空值而不抛出异常。在此处查看更多信息: how-do-i-compare-strings-in-java

如果您没有运行 JDK 7 或更高版本,您可以从 Objects 复制 equals 方法,如下所示:

 public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}

原文由 Erk 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题