11

这两种方法有什么区别?

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

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

4

6 回答 6

19

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

Javadocs 用于isEmpty()

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

于 2013-10-01T21:38:11.573 回答
4

Javadoc

是空的

公共布尔 isEmpty()

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

于 2013-10-01T21:38:19.803 回答
4

对于 Java 6+

isEmpty()Java 6开始length == 0工作,从 Java 1.2+ 或可能更旧的版本开始工作。

如果你注意到,方法的实现

Apache Commons Lang(适用于 Java 5+)

public static boolean isEmpty(String str) 

为了支持 Java 5.0+,org.apache.commons.lang.StringUtils使用Apache Commons Lang的类。str.length() == 0

于 2013-10-01T22:01:45.747 回答
1

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

IsEmpty(): http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#isEmpty()

长度(): http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#length()

于 2013-10-01T21:39:01.617 回答
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;
}
于 2013-10-01T21:40:38.623 回答
0

想对此进行更新:

我观察到字符串是否有换行符(\n 或 \r),时间长度 fun 给你的不是零值,而是 isEmpty fun 突出,值为 true,这是预期的

于 2018-09-12T19:11:02.533 回答