使用' +' - 添加或连接

时间:2015-01-08 06:38:37

标签: java concat

代码段1:

    Long [] a1 = {3L,4L,5L};
    System.out.print(a1[0].toString() + a1[1] + a1[2]);

//输出:345

代码段2:

    Long [] a1 = {3L,4L,5L};
    System.out.print(a1[0] + a1[1] + a1[2] + " ");

//输出:12

在Snippet 1中,我们有' +'用作加法因此我们有3 + 4 + 5 = 12 但是,在Snippet 2中使用相同的逻辑,为什么我们没有37而不是345

2 个答案:

答案 0 :(得分:3)

传递给print的表达式从左到右进行评估。如果print语句中的第一个表达式是String,则+运算符将被视为字符串连接。如果第一个表达式是数字,则+运算符将被视为加法。

< BTW,与你在问题中所写的不同,第一个片段是输出345的片段,由于字符串连接。

答案 1 :(得分:1)

Java评估表达式从左到右

在您的情况下System.out.print(a1[0] + a1[1] + a1[2] + " ")它首先评估""它是字符串然后它连续""并带有a1[2]值等等......这就是为什么你得到那个输出{ {1}} 它不是添加它是字符串的连接。