看到这段代码工作,我感到很惊讶.我认为char和int是
Java中的两种不同的数据类型,我不得不将char转换为int来为此提供ascii equivelent.为什么这样做?
String s = "hello"; int x = s.charAt(1); System.out.println(x);
解决方法
char可以自动转换为int.见
JLS 5.1.2:
The following 19 specific conversions on primitive types are called the widening primitive conversions:
…
- char to int,long,float,or double
…
A widening conversion of a signed integer value to an integral type T simply sign-extends the two’s-complement representation of the integer value to fill the wider format. A widening conversion of a char to an integral type T zero-extends the representation of the char value to fill the wider format.
(重点补充)