Java:字符比较

Java:字符比较,java,character,Java,Character,我对java还很陌生,只是遇到了一个看似愚蠢的问题。 'H'>'e'给出false和'H'>'e'给出true。这是怎么回事 比较chars时,比较chars的ASCII码 我们有: H=72 h=104 e=101 所以基本上你是在比较 'H'>'e' // = 72 > 101 = false 'h'>'e' // = 104 > 101 = true 比较chars时,会比较chars的ASCII码 我们有: H=72 h=104 e=101 所以基本上

我对java还很陌生,只是遇到了一个看似愚蠢的问题。
'H'>'e'
给出
false
'H'>'e'
给出
true
。这是怎么回事

比较
char
s时,比较
char
s的ASCII码

我们有:

  • H=72
  • h=104
  • e=101
所以基本上你是在比较

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

比较
char
s时,会比较
char
s的ASCII码

我们有:

  • H=72
  • h=104
  • e=101
所以基本上你是在比较

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

比较基于ASCII值

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

因此,“H'>'e'给出false,“H'>'e'给出true

比较基于ASCII值

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

因此,“H'>'e'给出false,“H'>'e'给出true

检查一个ASCII表,这一切都是有意义的。然而,由于这种代码的非直观性,我建议避免这种事情——比如比较字符。最好是更加明确,例如通过将字符转换为int。这样,事情就变得更加明显了。我忘了提到另一件事。如何进行词典比较?如果你想进行更自然的比较,请使用拼贴器。但是你有一个词典比较,Java
char
是一个UTF-16代码单元,而不是一些人所说的ASCII。UTF-16是字符集的几种编码之一。这就像.NET、JavaScript、VB6等,…。HTML和XML文档是Unicode代码点的序列,与文档编码无关。至于词典排序:检查一个ASCII表,这一切都是有意义的。然而,由于这种代码的非直观性,我建议避免这种事情——比如比较字符。最好是更加明确,例如通过将字符转换为int。这样,事情就变得更加明显了。我忘了提到另一件事。如何进行词典比较?如果你想进行更自然的比较,请使用拼贴器。但是你有一个词典比较,Java
char
是一个UTF-16代码单元,而不是一些人所说的ASCII。UTF-16是字符集的几种编码之一。这就像.NET、JavaScript、VB6等,…。HTML和XML文档是Unicode代码点的序列,与文档编码无关。至于词典排序: