我注意到奇怪的行为,至少对我来说,在我的程序中。
输出错误:
public static void main(String[] args)
{
while(count < 3)
{
System.out.println("Count: " + count);
System.out.println("" +(count*2)+1);
count++;
}
}
产生以下印刷声明:
Count: 1
21
Count: 2
41
这个程序:
public static void main(String[] args)
{
while(count < 3)
{
System.out.println("Count: " + count);
System.out.println((count*2)+1 + "");
count++;
}
}
产生此输出:
Count: 1
3
Count: 2
5
我的问题是,当你将空字符串""
放在算术表达式的前面时,Java 7会做一些特殊的事情,当空字符串跟在那个算术表达式之后它不会这样做吗?
答案 0 :(得分:10)
+
运算符有两个含义
number + number
表示添加; string + anything
表示字符串连接。
+
运算符是左关联的
因此,"" + a + b"
被解析为("" + a) + b
答案 1 :(得分:2)
括号有问题。
("" +(count*2)) + 1
和
(count*2 + 1) + ""
不一样。