比较字符串有什么更好的方法?

时间:2016-11-28 04:44:53

标签: java string

2中哪一个比较String更好的方法?

String str="Hello";

//case 1:
if(str.equals("Hello")){

//case 2:
if("Hello".equals(str))

4 个答案:

答案 0 :(得分:3)

每当我需要与常量字符串进行比较时,我都会使用case 2

if("Hello".equals(str))

以上避免了NullPointerException

更新: -

我认为没有任何性能问题,因为对于CPU来说它会是相同的,订单并不重要。

但是在很少的地方,它会降低可读性。

(5==num)

在上文中,您将以5 is equal to num而非num is equal to 5的身份阅读。

答案 1 :(得分:1)

我更喜欢后者。

"Hello".equals(str) //prevents NullPointerExceptions.

您还可以阅读Yoda条款!

答案 2 :(得分:1)

考虑这种情况:

for(var i=0; i< xmlimages.length; i++) {
    images.src = "images/" + xmlimages[i].innerHTML.trim(); // trim used to remove all the white space from text that you get when you use innerHTML
}

在上面的代码中,案例1将失败,但案例2将不会。所以后者更好。

但是,如果你正在考虑表现,那么两者之间没有区别。

答案 3 :(得分:0)

第二个选项更安全,因为如果str为null,它不会抛出NullPointerException