其中最好的String技术等于比较

Moh*_*ain 3 java

如果块更好?

private static void checkStr(String str) {

    if (str.equals("exit")) {
        System.out.println("It is equal");
    }
    if ("exit".equals(str)) {
        System.out.println("It is equal");
    }
}
Run Code Online (Sandbox Code Playgroud)

Fra*_*eth 8

第一种方法是给予保证金NullPointerExceptions.所以从我的观点来看,第二个更好.

对于常量的情况,您应该首选第二种方法而不是第一种方法.

"exit".equals(str)
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到详细的解释


我个人更喜欢另一种方法.Apache Commons - commons langObjectUtils.equals(Object, Object).使用这种方法,即使使用值,也始终是安全的.

来自文档:

比较两个对象是否相等,其中一个或两个对象可以为null.

 ObjectUtils.equals(null, null)                  = true
 ObjectUtils.equals(null, "")                    = false
 ObjectUtils.equals("", null)                    = false
 ObjectUtils.equals("", "")                      = true
 ObjectUtils.equals(Boolean.TRUE, null)          = false
 ObjectUtils.equals(Boolean.TRUE, "true")        = false
 ObjectUtils.equals(Boolean.TRUE, Boolean.TRUE)  = true
 ObjectUtils.equals(Boolean.TRUE, Boolean.FALSE) = false
Run Code Online (Sandbox Code Playgroud)