String s = new String("5");
System.out.println(1 + 10 + s + 10 + 5);
以下功能的输出是115105怎么样?
答案 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。