isEmpty()和零长度之间的差异

时间:2013-10-01 21:35:37

标签: java string

这两种方法有什么区别?

public boolean nameControl(String str) 
{
    if (str.trim().isEmpty()) return false;
    if (str.trim().length() == 0) return false;
    return true;
}

我需要找出str至少应该有一个字符。

6 个答案:

答案 0 :(得分:17)

它们之间没有真正的区别。

isEmpty()

的Javadocs
  

当且仅当length()为0时返回true。

答案 1 :(得分:4)

来自Javadoc

  

的isEmpty

     

public boolean isEmpty()

     

当且仅当length()为0时返回true。

答案 2 :(得分:4)

对于Java 6 +

isEmpty()可用,因为 Java 6 length == 0自Java 1.2+以来可能起作用,或者可能是旧版本。

如果您注意到方法的implementation

Apache Commons Lang(适用于Java 5 +)

public static boolean isEmpty(String str) 
来自org.apache.commons.lang.StringUtils的类Apache Commons Lang

使用str.length() == 0以支持Java 5.0 +。

答案 3 :(得分:1)

答案 4 :(得分:0)

如果你需要检测一个字符串是否至少有一个(非空格)字符,我会尝试:

public boolean nameControl(String str) {
    if (str == null) return false;
    else if (str.trim().length() == 0) return false;
    return true;
}

如果只包含空格的字符串应该返回true,我会删除trim,如下所示:

public boolean nameControl(String str) {
    if (str == null) return false;
    else if (str.length() == 0) return false;
    return true;
}

答案 5 :(得分:0)

想要对此进行更新:

  

我当时观察到字符串是否具有换行符char(\ n或\ r)   长度乐趣给您的价值不是零,但isEmpty却与众不同   值应为true