對於字符串,您必須使用equals來比較它們,因爲==只會比較引用。你可以用==比較字符嗎?
如果我用==比較字符,它會給出預期的結果嗎?
我已經在stackoverflow上看到過類似的問題,例如,
不過,我還沒有看到一個詢問使用的字符==。
對於字符串,您必須使用equals來比較它們,因爲==只會比較引用。你可以用==比較字符嗎?
如果我用==比較字符,它會給出預期的結果嗎?
我已經在stackoverflow上看到過類似的問題,例如,
不過,我還沒有看到一個詢問使用的字符==。
是的,char
就像任何其他原始類型,你可以通過==
比較它們。
你甚至可以比較焦炭直接數字和計算如使用它們:
public class Test {
public static void main(String[] args) {
System.out.println((int) 'a'); // cast char to int
System.out.println('a' == 97); // char is automatically promoted to int
System.out.println('a' + 1); // char is automatically promoted to int
System.out.println((char) 98); // cast int to char
}
}
會打印:
97
true
98
b
是的,但也沒有。
技術上,==
比較2 int
。因此,在類似下面的代碼:
public static void main(String[] args) {
char a = 'c';
char b = 'd';
if (a == b) {
System.out.println("wtf?");
}
}
的Java被隱式轉換線a == b
到(int) a == (int) b
。
但是,比較仍然「有效」。
'char's是原始的,所以**是**。 –
你爲什麼不在你的IDE中試試這個? –
[Java中==和equals()有什麼不同?](https://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java ) –