2017-04-17 19 views
0

私はJavaにはかなり慣れていて、ちょっとばかげた問題にこだわりました。 'H'>'e'は、falseとなり、'h'>'e'は、trueとなる。ここで何が起こっているのですか?Java:文字の比較

+5

チェックアウトASCIIテーブル真与え、それはすべての理にかなっています。しかし、そのようなコードの直感的でない性質のために、私は文字を比較するようなことを避けるようアドバイスします。 charを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:Wikipediaの印刷可能な文字](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' が