簡體   English   中英

.equals(“ 0”)和.equals('0')之間的差異

[英]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 trueStatus 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM