2 回答
TA贡献1982条经验 获得超2个赞
+
在a char
和a上使用运算符时int
,它会执行算术加法,而不是字符串连接。把"" +
第一意味着你首先做的"" + c
,这是串联成一个String
,然后补充说,String
到一个int
,这是另一种串联。
TA贡献1836条经验 获得超3个赞
+
运算符在Java中有两个含义。它可以代表:
另外如果两个操作数都是数字类型,并且
char
被认为是数字类型,因为在内部它的值是表示Unicode表中字符位置的数字,因为'a'
它将是97(十进制或61为十六进制)。级联如果至少一个操作数是字符串。
此外,评价从左到右c + i + ", "
相当于(c + i) + ", "
。在(c + i)
这两个c
和i
是数字类型,以便+
代表此外,计算'a'+1
其中,'a'
如前面提到的被视为97,所以你看到的结果97+1
是98。
在下一个操作之后,98 + ", "
这里第二个操作数是String,所以这里+
表示连接。所以98 + ", "
结果是String "98, "
。
如果"" + c + i + ", "
因为从左到右的评价顺序我们可以表达为(("" + c) + i) + ", "
。
首先
("" + c)
会“计算”,因为第一个操作数是String+
表示连接,所以我们最终"" +'a'
得到String中的结果"a"
。"a" + i
执行Next ,此处第一个操作数的类型为String,因此+
也表示串联的结果"a1"
最后
"a1" + ", "
被执行了。这两个操作数都是字符串,因此+
是连接,这导致"a1, "
字符串。
添加回答
举报