[英]Difference between .equals (“0”) and .equals('0')
內容:
使用帶雙引號和單引號的等號進行字符串比較
我嘗試檢查我的一個業務對象的字段“ parentId”(字符串)的值,如下所示:
System.out.println("Status 1 = "+myBusObj.getParentId().equals("0"));
System.out.println("Status 2 = "+myBusObj.getParentId().equals('0'));
我得到以下輸出:
Status 1 = true //where parentId was of value 0 (String)
Status 2 = false //where parentId was of value 0 (String)
問題:為什么Status 1 is true
但Status 2 is false
?
區別在於,在第一種情況下,您將與一個字符String
進行比較,在第二種情況下,您將與Character
對象進行比較。
使用equals(Object)
不能比較字符串和字符; 因此在第二種情況下為false
。
(這里有個細微的差別 ……因為'0'
是一個char
文字,將被自動裝箱以提供Character
對象。在Java 5之前,自動裝箱已添加到該語言中, .equals('0')
調用將是編譯錯誤。這是自動裝箱實際上是一個障礙的示例之一)
狀態1:您嘗試將字符串對象與字符串對象(“ String”字符串對象)進行比較,因此結果為true。
狀態2:您嘗試將字符串對象與字符對象(“字符”字符對象)進行比較,以使結果為false。
謝謝。
雙引號將字符串括起來,單引號將字符括起來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.