Java 为什么int[]aa={'12','2'};无效且int[]aa={'1','2'};有效吗?显示无效字符常量时出错

Java 为什么int[]aa={'12','2'};无效且int[]aa={'1','2'};有效吗?显示无效字符常量时出错,java,arrays,Java,Arrays,为什么int[]aa={'12','2'};无效且int[]aa={'1','2'};有效吗 错误显示的字符常量无效。'1'和'2'是字符,可以升级为int,因此可以将它们分配给int数组。请注意,“1”和“2”的数值不等于数字1和2。他们实际上是49岁和50岁 i、 e 将生成与以下内容相同的数组: int[] aa={49,50}; “12”在Java中不是有效的常量 如果您想要一个字符串,它应该是12,但在这种情况下,您不能将其分配给int数组。如果您想要整数,它应该是12,即不带任何

为什么int[]aa={'12','2'};无效且int[]aa={'1','2'};有效吗

错误显示的字符常量无效。

'1'和'2'是字符,可以升级为int,因此可以将它们分配给int数组。请注意,“1”和“2”的数值不等于数字1和2。他们实际上是49岁和50岁

i、 e

将生成与以下内容相同的数组:

int[] aa={49,50}; 
“12”在Java中不是有效的常量


如果您想要一个字符串,它应该是12,但在这种情况下,您不能将其分配给int数组。如果您想要整数,它应该是12,即不带任何引号。

因为单引号表示“单字符值”,“12”不是单字符,而是一次两个字符。请注意,int a='1'是有效的,它不会做您认为它会做的事情。运行以下代码:

int a = '1';
System.out.println(a); // This prints... 49????

是的,它印的是49号。”1'是一个字符。它将在这里无声地向上转换为一个整数,此时,您将看到它的UTF代码点49。如果您想要一个包含值12和2的int数组,它只是:int[]aa={12,2};-忘记引号。

“12”不是有效的字符文字。字符不能包含两个字符。12不是有效字符。'12'->1是字符,2是第二个字符。它的名字是:性格。char可以转换为int,但必须是有效的char,因为char变量表示单个字符。当你使用单引号时,你决定它是一个字符。字符串的双引号。
int a = '1';
System.out.println(a); // This prints... 49????