这怎么等于 105 而不是 15?

How does this equal 105 instead of 15?

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
  }

}

第一个答案的类型是字符串,因为“”,您正在使用 +

进行字符串连接

对于第二个,+ 未用于连接字符串。

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

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

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

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

我的母语不是英语,我正在学习,抱歉我的英语不好,希望这对您有所帮助。