2017-04-17 81 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' 给真正