为什么在System.out.println中使用字符串添加整数?在java中

时间:2015-06-24 18:03:12

标签: java

String s = new String("5");
System.out.println(1 + 10 + s + 10 + 5);

以下功能的输出是115105怎么样?

5 个答案:

答案 0 :(得分:4)

" +"是左关联所以

1 + 10 => 11(int)
11 + s => "115"(String)
"115" + 10 => "11510"(String) 10 is converted to String
"11510" + 5 = "115105"(String) 5 is converted to String 

答案 1 :(得分:1)

只要可能,您的代码就可以有效地用作整数求和,因为评估过程从左到右。遇到String后,该函数会切换到连接。

1 + 10 + "5" + 10 + 5
= (1 + 10) + "5" + 10 + 5
= 11 + "5" + 10 + 5
= 115105

答案 2 :(得分:0)

String s = new String("5");
System.out.println(1 + 10 + s + 10 + 5);

由于表达式从左到右进行评估,因此您的代码与

相同
System.out.println((((1 + 10) + "5") + 10) + 5);

因此首先对(1 + 10)进行评估,因为它是简单的整数加法,所以你得到的是11,所以你的代码就变成了

System.out.println(((11 + "5") + 10) + 5);

现在评估(11 + "5"),因为其中一个参数是String,它正在连接,结果也将是String。因此11 + "5"变为"11"+"5",它为我们提供了字符串"115"

之后,我们的代码与

相同
System.out.println(("115" + 10) + 5);

再次在("115" + 10)中,其中一个参数是String,因此我们得到"115"+"10",它为我们提供了另一个字符串"11510"

所以最后我们达到了

的程度
System.out.println("11510" + 5);

相同
System.out.println("115105");

答案 3 :(得分:0)

(1 + 10)10以及5被视为代码中的三个字符串

答案 4 :(得分:-1)

当您在添加中包含字符串时,Java会将整数转换为字符串,它会变为连接。试试

import java.io.*;
import java.util.*;
import java.lang.*;

public class mainactivity {
    public static void main(String a[]) {
        String s = new String("5");
        System.out.println((1 + 10) + s + (10 + 5));
    }    
}

这应输出11515。