这相当于105而不是15?

时间:2017-03-02 02:01:44

标签: java string string-concatenation addition

public class Review {

public static void main(String[] args) {
    int x = 10, y = 5;
    System.out.println(" " + x + y); // string + x + y
  }

}

这相当于105而不是15? 是什么让它与下面的代码不同?

public class Review {

public static void main(String[] args) {
    int x = 10, y = 5;
    System.out.println(x + y); //Only x + y
  }

}

3 个答案:

答案 0 :(得分:0)

第一个答案类型是String,因为“”并且您使用+

使用字符串连接

对于第二个,+不用于与String连接。

答案 1 :(得分:0)

当您将基本数据类型与System.out.println()中的字符串混合时,Java编译器假定您希望将每种数据类型转换为String对象。在原始数据类型周围添加括号,您可以在转换前首先计算Jim Garrison建议:System.out.println(" " + (x + y));

答案 2 :(得分:0)

" " + x + y表示" " + x然后是+ y

所以你写的第一个代码我们可以分成两个步骤:
1. " " + x => " " + 10 => "10"
2. "10" + y => "10" + 5 => "105"

但第二个只是number + number,所以我们得到了数字结果。

我不是母语为英语的人,而且我正在学习,抱歉我的英语不好,我希望这会有所帮助。