首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >String.isEmpty()和String.equals("")之间的区别

String.isEmpty()和String.equals("")之间的区别
EN

Stack Overflow用户
提问于 2011-07-26 18:03:05
回答 7查看 22K关注 0票数 22

我创建了一个带有三个文本框的“颜色选择器”,用户可以在其中定义RGB值。

为了检查输入的值是否正确(仅限0-255之间的数字),我使用以下命令:

代码语言:javascript
复制
public Color getColor() {
    if (tfRed.getText().equals("") || tfGreen.getText().equals("") || tfBlue.getText().equals("")) {
                return new Color(0, 0, 0, 0);
    } else {
        if (tfRed.getText().matches("\\d+") && tfGreen.getText().matches("\\d+") && tfBlue.getText().matches("\\d+")) {
            // ...
        } else {
            return new Color(0, 0, 0, 0);
        }
    }
}

我想问的是:使用String.isEmpty()更好吗?我从来没有找到一个令人满意的答案,我一直在想是否有什么不同。

EN

回答 7

Stack Overflow用户

发布于 2011-07-26 18:06:02

可以,使用String.isEmpty()。它(在语义上)更简洁(性能也稍好一些,但这并不明显)如果实例可以为空,则使用commons-lang StringUtils.isEmpty(string)

票数 14
EN

Stack Overflow用户

发布于 2011-07-26 18:07:45

通常,我喜欢使用equals,但反过来,即:

代码语言:javascript
复制
"".equals(someString);

Null-safe :)

但是,是的,isEmpty()是一个更简单的操作,但我认为它对性能的贡献并不是很大(除非您正在编写嵌入式实时内容)。

票数 7
EN

Stack Overflow用户

发布于 2011-07-26 18:06:53

使用myString.equals(""),编译器首先创建一个字符串对象(它等同于myString.equals(new String(""))

因此,isEmpty()应该是一个更好的选择(尽管equals("")非常流行)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6828362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档