【发布时间】:2015-06-15 15:46:18
【问题描述】:
我试图了解编译器如何查看以下打印语句。这很简单,但有点有趣。
这会打印附加值。足够有说服力。
System.out.println(1+2); //输出:3
下面的输出看起来也很有说服力:
System.out.println(1+2+"3");//输出:33
我的问题(基于上述行为)在这里。
System.out.println("1"+2+3);//应该是15吧?不。现在是 123。
我尝试了一些其他类似的陈述。我能够看到一两个明确的行为。
如果整数在前面,不带引号,则添加它们,后续整数只是作为后缀附加到前面添加的值。
如果语句以字符串开头,在引号下,则所有其他后续元素都作为后缀附加。
这是在 java api 文档中的某个地方吗?或者只是非常明显的字符串或添加我没有看到的操作员行为。我们将不胜感激您的任何宝贵见解。
这里是sn-p的代码:
public static void main(String[] args) {
System.out.println(1+2);
System.out.println(1+2+"3");
System.out.println("1"+2+3);
System.out.println("1"+2+"3");
System.out.println("1"+2);
}
// The Console output:
// 3
// 33
// 123
// 123
// 12
【问题讨论】:
标签: java string operator-overloading operators