我正在制作一个程序(A Piglatin有点......),我无意中错过了声明中的一个变量:
String a = "R"++'a';
它实际上应该是String a = "R"+text+'a';
.编译器产生了错误.但是,当我做到时:
String a = "R"+ +'a';
该计划编制.
我想知道为什么把一个空间变得与众不同,即使Java不关心你是否在某些陈述中放置一个空格,例如:String a="ABCD";
就像String a = "ABCD";
有人可以解释一下这种行为吗?
++
是一个独立的运营商(前或后增量).
将它放在字符串和char字面之间在语法上是无效的.
但是"R"+ +'a'
,第二个+
将绑定到char文字a
,并将作为一元加运算符(此运算符具有非常高的优先级).这是不是一个无操作:在Java中它的作用推动的类型的a
一个int
.此类型提升意味着输出将是R97
而不是Ra
(97是ASCII数字a
).其余的+
作为字符串连接符.