2017-04-17 106 views
0

我對Java很新,只是陷入了一個看似愚蠢的問題。 'H'>'e'給出false'h'>'e'給出true。這裏發生了什麼?Java:字符比較

+5

退房的ASCII表,這一切纔有意義。但是,由於這種代碼的直觀性,我建議避免這樣的事情 - 比如字符比較。最好是更明確一些,例如通過將字符轉換爲int。這樣,發生了什麼變得更加明顯。 – domsson

+0

https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html –

+0

我忘了提及另一件事。我如何進行字典比較? –

回答

5

比較char時,比較了char的ASCII碼。

在這裏,我們有:

  • H = 72
  • H = 104
  • E = 101

所以基本上您比較

'H'>'e' // = 72 > 101 = false 
'h'>'e' // = 104 > 101 = true 
+0

[ASCII:維基百科上的可打印字符](https://en.wikipedia.org/wiki/ASCII#Printable_characters) – domsson

1

的比較是基於ASCII值。

The ASCII value for 'H' is 72 
For 'h' is 104  
and for 'e' is 101 

因此 'H'> 'E' 提供虛假和 'h'> 'E' 給真正