java :这里发生了什么?

jvidinwx  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(322)

这个问题在这里已经有答案了

加减字符,为什么这样做[重复](4个答案)
数据类型周围的括号(5个答案)
给int赋值时,括号中的int是什么意思(7个答案)
(char)i或(int)i在java中的用途和意义是什么(3个答案)
20天前关门了。
我遇到了一段类似的代码:

public class print {
    public static void main(String[] args) {
        for (int i = 0; i < 6; i++) {
            System.out.print((char) (i + 'a'));
        }
    }
}

如果我运行它,我会得到“def”。
我的问题是关于这个表达: (char) (i + 'a') .
我有点直觉地知道发生了什么,但我想要一个严格的一步一步解释电脑是如何翻译的。如一些答案所示,字符只是一个显示为字符的数字。好吧,但是这个带括号的语法实际上是做什么的呢?这是一种转变吗?我也可以用它做其他类型的吗?

mi7gmzs6

mi7gmzs61#

你可以用 char 作为一个 integer 价值,反之亦然
以下代码可能会有所帮助:

char aChar = 'a'; // a char
int aCharAscii = aChar; // 97

char bChar = 'a' + 1; // b char
int bCharAscii = aChar + 1; // 98
dgiusagp

dgiusagp2#

java char 是16位整数类型。 'a' 与相同 97 ,你可以看到 System.out.println((int) 'a'); -因此 98'b' 在整个ascii表中以此类推。

s71maibg

s71maibg3#

的ascii值 a97 .

When i = 0, i + 'a' = 0 + 97 => When cast into char, it will be a
When i = 1, i + 'a' = 1 + 97 => When cast into char, it will be b
When i = 2, i + 'a' = 2 + 97 => When cast into char, it will be c
...and so on

相关问题