如果表达式以String开始的,那么java编译器会把后面的数值类型都转换成String形式而不是把它们加起来再转换,但可以通过用括号先将后面的数值进行相加再转换;如果表达式以数值型开始,则是先将其数值进行相加再转换为String形式。
int x=1,y=2,z=3;
double f1=10.0,f2=20.0,f3=30.0;
String s="String";
System.out.println(s+x+y+z); //String123
System.out.println(s+(x+y+z)); //String6
System.out.println(s+(x+y)+z); //String33
System.out.println(s+x+(y+z)); //String15
System.out.println(x+y+z+s); //6String
System.out.println(x+s+y+z); //1String23
System.out.println(s+f1+f2+f3); //String10.020.030.0
System.out.println(f1+f2+f3+s); //60.0String
System.out.println(f1+s+f2+f3); //10.0String20.030.0