看到这段代码有效,我感到很惊讶。我认为 char 和 int 是 Java 中的两种不同的数据类型,我必须将 char 转换为 int 才能使 ascii 等效。为什么会这样?
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.
(强调)
关于java - Java 中的 char 和 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549692/