2中哪一个比较String更好的方法?
String str="Hello";
//case 1:
if(str.equals("Hello")){
//case 2:
if("Hello".equals(str))
答案 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