在Java解释中增加一个字符

时间:2013-06-25 07:09:14

标签: java character character-properties

我有一个看起来像这样的Java片段:

    char ch = 'A';
    System.out.println("ch = " + ch);

打印: A

然后我这样做

    ch++; // increment ch
    System.out.println("ch =" + ch);

现在打印: B

我也尝试使用Z并生成了[ (开放方括号)
-并导致.


这是怎么发生的?可能的解释是什么?提前谢谢。

5 个答案:

答案 0 :(得分:9)

对于字符0到127,您遵循ASCII字符集。

enter image description here

正如您所见,(90)Z之后的字符是(91)[而(45)-之后的字符是(46).

尝试

char ch = '-';
ch += '-'; // == (char) 90 or 'Z'

甚至更奇怪

char ch = '0';
ch *= 1.15; // == (char) 48 * 1.15 = 54 or '6'

答案 1 :(得分:3)

这是因为'char'本质上是一种数字,采用Unicode格式,其中您键入的每个字符都由数字表示。这意味着角色可以被视为一个数字,因为可以减去或减去其中任何一个。

有关特定映射的详细信息,请尝试here

答案 2 :(得分:1)

char数据类型是一个16位Unicode字符。它的最小值为'\ u0000'(或0),最大值为'\ uffff'(或65,535(含))。算术运算可以在char文字上执行,因为它们实际上是表示Unicode的数值。

答案 3 :(得分:1)

它实际上是递增ascii值。 s值为65,因此66为B.再次Z的值为90且[是91

答案 4 :(得分:1)

Char具有字符的数字表示。如果您尝试将其转换为int,例如int a = (int) 'A';,您将获得字符代码。当您递增char值时,您将在ASCII table中向下移动,并获得下一个表值。