繁体   English   中英

Java String Comparison:样式选择还是优化?

[英]Java String Comparison: style choice or optimization?

我一直在研究一些由不同的人编写的GWT代码,并且有不同的方法来比较字符串。 我很好奇这是否只是一种风格选择,或者如果一种比另一种更优化:

"".equals(myString);

myString.equals("");

myString.isEmpty();

有区别吗?

"".equals(myString);

如果myString为null,则不会抛出NullPointerException 这就是很多开发人员使用这种形式的原因。

myString.isEmpty();

如果myString永远不为null,那么这是最好的方法,因为它解释了发生了什么。 编译器可以优化这个或myString.equals("") ,因此它更像是一种样式选择。 isEmpty()equals("")更好地显示你的意图,因此通常是首选。

请注意,Java 6中添加了isEmpty() ,不幸的是,如果您不支持Java 1.4,仍然会有人大声抱怨。

apache StringUtils为String操作提供了一些方便的方法。

http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html#isBlank(java.lang.CharSequence)

看看那个方法和相关的方法。

如果您正在使用最新版本的Java(1.6),myString.isEmpty()可能是最好的。 它可能比myString.equals(“”)表现更好,因为它只需要检查一个字符串。

“.equals(myString)具有如果myString为null则不抛出空指针异常的属性。 然而,仅仅因为这个原因,我会避免它,因为如果遇到意外情况通常会更快失败。 否则将来一些小虫子很难追查.....

myString.equals(“”)对于那些希望保持与旧Java版本兼容的人来说是最自然/惯用的方法,或者只是想要明确他们所比较的内容。

使用“”的两个选项可能需要创建临时String对象,但.isEmpty()函数不应该。

如果他们打算放入.isEmpty()函数,我说最好用它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM