Nav*_*Ali 0 java string string-concatenation
我在java中编写代码并输出为2 equals 11.My代码是
public class StringPrct
{
public static void main(String[]args)
{
String s= 1+1+" equals "+1 +1;
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是为什么我没有得到输出2 equals 2.
该+经营者具有相同的优先级无论是添加或串联,和同事左到右.所以:
1 + 1 + " equals " + 1 + 1
Run Code Online (Sandbox Code Playgroud)
评估为
(((1 + 1) + " equals ") + 1) + 1
((2 + " equals ") + 1) + 1
("2 equals " + 1) + 1
"2 equals 1" + 1
"2 equals 11"
Run Code Online (Sandbox Code Playgroud)
如果要覆盖它,则需要提供括号:
1 + 1 + " equals " + (1 + 1)
Run Code Online (Sandbox Code Playgroud)
这变为:
((1 + 1) + " equals ") + (1 + 1)
(2 + " equals ") + (1 + 1)
"2 equals " + (1 + 1)
"2 equals " + 2
"2 equals 2"
Run Code Online (Sandbox Code Playgroud)
为清楚起见,您可能应该将括号添加到第一个括号中1 + 1,以便读取您的代码的人不必进行添加括号和评估的心理练习:
(1 + 1) + " equals " + (1 + 1)
Run Code Online (Sandbox Code Playgroud)
小智 5
1 + 1是整数(2)
2 + " equals "被转换为String(2 equals)
"2 equals " + 1是String(2 equals 1)
"2 equals 1" + 1是String(2 equals 11)
它应该是 (1 + 1) + " equals " + (1 + 1)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |