字串相等比較

2021-08-15 15:48:25 字數 664 閱讀 1641

如果說現在要是有兩個int型的變數判斷其相等可以使用「==」完成。

範例:觀察基本資料型別比較

public class string demo}
結果:  ture

那麼如果說現在在string類的物件上使用了「==」呢?

範例:觀察string直接使用「==」比較

public class string demo}

// false

現在兩個字串的內容是相同的,而使用了「==」比較之後內容是不同的,

於是想要得出結論應理解記憶體圖分析。 

「==」本身是進行數值比較的,而現在如果用在了物件之中,那麼所比較的就應該是物件所儲存的是物件所儲存的位址數值,

所以屬於位址數值比較,而並沒有比較物件的內容。

那麼要想進行內容的比較,則必須採用string類中所提供的方法

內容比較:public boolean equals (string str)

範例:進行字串物件內容比較

public class string demo}//ture

試題:請解釋string類中「==」和「equals()」的區別?

「==」:是進行數值比較,比較是的兩個字串物件的記憶體位址數值.

「equals()」:可以進行字串內容的比較.

比較字串相等

equals 和運算子 c 中有兩種不同的相等 引用相等和值相等。值相等是大家普遍理解的意義上的相等 它意味著兩個物件包含相同的值。例如,兩個值為 2 的整數具有值相等性。引用相等意味著要比較的不是兩個物件,而是兩個物件引用,且兩者引用的是同乙個物件。這可以通過簡單的賦值來實現,如下面的示例所示 s...

c char字元相等比較 字串使用的小誤區

最近 評審時候遇到的這些坑。咋一看 貌似沒什麼問題,簡單的字串比較。可是仔細看了看感覺 不對勁,執行結果卻是一直是輸出 utf 32 這裡有個誤區是,字串 char 是不能直接比較的,下列 比較的是字串的位址,這樣就會導致它們字串位址永遠不會相等就一直輸出的是 utf 32 結果了。string s...

C 相等比較

c 中的物件都繼承自system.object物件,分為引用型別和值型別兩種,所以物件的相等比較而言就分兩種,一種是比較引用,一種是比較值。system.object預設提供了三個方法來進行物件的相等比較 靜態的referenceequals equals 靜態方法 equals 虛方法 子類可以去...