日期:2014-05-19  浏览次数:20642 次

一个简单的字符拼接,求解释
System.out.println(9+9+"99"+9+9);

结果是189999。我知道会是这样的结果,但是中间处理过程不太清楚。

------解决方案--------------------
String拼接字符串是这样的:
如果拼接的前后有String类型的,都当作String类型的来处理。
9+9+"99"+9+9
运行顺序从左往右:两个9都是int类型,所以9+9为int类型, 加起来18
18+"99" ,"99"为String类型,所以为字符串拼接 1899
"1899"+9 = "18999"
"18999"+9 = "189999"
------解决方案--------------------
String str = 9 + 9 + "99" + 9 + 9 ;

从左到 右 ,先做9+ 9 类型均为 int 所以 9 + 9 = 18 ;

然后做 18 + "99" ,因为 int + String ,所以把 int转为 String 即 "18"+ "99" = "1899"
然后做 "1899" + 9 ,因为 String + int ,所以把 int转为 String 即 "1899"+ "9" = "18999"
然后做 "18999" + 9 ,因为 String + int ,所以把 int转为 String 即 "18999"+ "9" = "189999"