2017-08-26 87 views
0

對於字符串,您必須使用equals來比較它們,因爲==只會比較引用。你可以用==比較字符嗎?

如果我用==比較字符,它會給出預期的結果嗎?


我已經在stackoverflow上看到過類似的問題,例如,

不過,我還沒有看到一個詢問使用的字符==。

+7

'char's是原始的,所以**是**。 –

+2

你爲什麼不在你的IDE中試試這個? –

+1

[Java中==和equals()有什麼不同?](https://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java ) –

回答

4

是的,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 
1

是的,但也沒有。

技術上,==比較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

但是,比較仍然「有效」。

相關問題