System.out.println(9+9+"99"+9+9);结果是189999。我知道会是这样的结果,但是中间处理过程不太清楚。

解决方案 »

  1.   

    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"
      

  2.   

    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"
      

  3.   

    首先前两个9被当做int处理,然后+“99”的时候变为1899,这是因为两边都作为String处理,这时左边相当于String类型的189999 再+的时候都是字符串了