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

Java isEmpty()和零长度之间的差异,java,string,Java,String,这两种方法有什么区别 public boolean nameControl(String str) { if (str.trim().isEmpty()) return false; if (str.trim().length() == 0) return false; return true; } 我需要找出str应该至少有一个字符。它们之间没有真正的区别 Javadocs 当且仅当length()为0时返回true 从: 空空如也 公共布尔值为空() 当且仅当le

这两种方法有什么区别

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

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

它们之间没有真正的区别

Javadocs

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

从:

空空如也

公共布尔值为空()

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


幸运的是,这已经被记录在案:

IsEmpty():

长度():

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

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;
}
适用于Java 6+
isEmpty()
Java6起运行,
length==0
自Java1.2+或可能更旧版本起运行

如果您注意到,该方法的

Apache Commons Lang(适用于Java 5+)
使用
str.length()==0来支持Java 5.0+。

希望在此基础上更新:

我观察到字符串是否有换行符(\n或\r),此时 长度乐趣带给你的不是零值,而是我的绝对乐趣 值应为true


你试过了吗?你看过源代码了吗?你看过javadoc吗?@SotiriosDelimanolis它返回FalseEmpty()检查字符串的长度是否为0,看起来大约有5个字符的代码空间。如果你的主要问题是如何检查字符串是否为空,那么可能是重复的。你可能也对它感兴趣。根据定义,任何形式的空格都不是字符吗?根据最初使用trim的情况,我假设只包含空格的字符串应该返回false。我已经更新了答案,以反映这两种情况。
public static boolean isEmpty(String str)