兩個字串列印出來相等,equals卻不同

2021-10-04 07:38:09 字數 1057 閱讀 1317

在做登陸註冊功能時遇到的問題:將傳入的密碼和資料庫中儲存的加密密碼進行比較時遇到,將兩個字串列印出來,長度相同說明沒有隱藏的字元,開始考慮是不是編碼問題,檢查了一下發現都不是。最後問題定位在string.equals()方法上:

//看看equals的原始碼:

/** * compares this string to the specified object. the result is if and only if the argument is not and is a object that represents the same sequence of characters as this

* object.

** @param anobject

* the object to compare this against

** @return if the given object represents a

* equivalent to this string, otherwise

** @see #compareto(string)

* @see #equalsignorecase(string)

*/public

boolean

equals

(object anobject)

if(anobject instanceof

string

)return

true;}

}return

false

;}

問題在這,也是自己不熟練的問題,傳入的stringbuilder,而不是string。直接改為stringbuilder.tostring();

這裡還有一種方式:

//直接帶編碼的方式處理字串,解決問題

string str=

newstring

(string.

getbytes()

,"utf-8"

);

比較兩個字串是否相等

我剛剛才學了組合語言,就寫了乙個很簡單的程式.下面是程式 dseg segment data1 db 9,0,9 dup data2 db 9,0,9 dup cnt db 8 str1 db 13,10,two string is same.str2 db 13,10,two string is ...

如何判斷兩個字串相等

如果 name的值是管理員的話就走大括號里德 奇怪的是 現在這個條件怎麼也不成立了。無論name的值是不是管理員,程式死活就不走大括號離得 如果name是個控制項用tostring方法獲取的是該控制項的型別不是值 所以要先知道name是個什麼東東我估計不是這個問題.你除錯下獲取下name看下正常不 ...

shell比較兩個字串是否相等

比較兩個字串是否相等的辦法是 if test x test x then 這裡的關鍵有幾點 1 使用單個等號 2 注意到等號兩邊各有乙個空格 這是unix shell的要求 3 注意到 test x最後的x,這是特意安排的,因為當 test為空的時候,上面的表示式就變成了x testx,顯然是不相等...