vik*_*ngh 3 java string int operation
考虑下面的代码片段 -
public class Student {
public static void main(String args[]) {
int a = 3;
int b = 4;
System.out.println(a + b +" ");
System.out.println(a + b +" "+ a+b);
System.out.println(""+ a+b);
}
}
Run Code Online (Sandbox Code Playgroud)
上述代码片段的输出如下:
7
7 34
34
Run Code Online (Sandbox Code Playgroud)
从输出中可以清楚地看出,如果我们首先在 print 语句中使用 String,那么整数将被连接起来。但是,如果我们首先使用整数,那么这些值将被添加并显示。
有人可以解释一下为什么会出现这种行为吗?
我什至尝试查看 PrintStream 类中 println() 方法的实现,但无法弄清楚。
实际上,这不是println()实现造成的,这是在Java处理.+Strings
事实上,该操作是从左到右处理的,因此:
string之前(或任何其他类型) ,则所有其余操作数将被视为,并且它仅由串联运算组成。intStringstringsStringint在操作中首先出现,则将被视为int,因此addition使用操作。这就是为什么a + b +" "给出的7原因,因为Stringis 在运算的末尾,而对于其他表达式a + b +" "+ a+b或""+ a+b,变量a和b将被视为在表达式中strings位于 a 之后。String
有关更多详细信息,您可以查看Java 规范中的字符串连接运算符 +。
| 归档时间: |
|
| 查看次数: |
13246 次 |
| 最近记录: |