Java中使用+运算符的加法和连接
到目前为止,在Java中,我们一直在玩不可或缺的部分,我们目睹了 +运算符的行为方式与预期的相同,因为十进制系统在二进制级别上被深深地累加起来,结果二进制数被抛出通用十进制系统中的控制台。但是极客们甚至想知道如果我们在 integer 和字符串之间使用这个 +运算符会怎样。
例子
Java
// Java Program to Illustrate Addition and Concatenation
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Print statements to illustrate
// addition and Concatenation
// using + operators over string and integer
// combination
System.out.println(2 + 0 + 1 + 6 + "GeeksforGeeks");
System.out.println("GeeksforGeeks" + 2 + 0 + 1 + 6);
System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + 2 + 0 + 1 + 6);
System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + (2 + 0 + 1 + 6));
}
}
输出
9GeeksforGeeks
GeeksforGeeks2016
8GeeksforGeeks2016
8GeeksforGeeks9
输出说明:这种不可预测的输出是由于编译器从左到右计算给定表达式的事实,因为运算符具有相同的优先级。一旦遇到字符串,它会将表达式的其余部分视为字符串(再次基于表达式的优先顺序)。
System.out.println(2 + 0 + 1 + 6 + "GeeksforGeeks");
它打印 2,0,1 和 6 的加法,等于 9
System.out.println("GeeksforGeeks" + 2 + 0 + 1 + 6);
它打印 2,0,1 和 6 的串联,即 2016,因为它最初遇到字符串。基本上,字符串优先,因为它们具有比整数更高的转换优先级。
System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + 2 + 0 + 1 + 6);
它打印 2,0,1 和 5 的加法,而 2,0,1 和 6 的串联基于上述示例。
System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + (2 + 0 + 1 + 6));
由于( ) 优先于 +,它会打印2,0,1 和 5 以及 2,0,1 和 6的加法。因此,首先计算 ( ) 中的表达式,然后进行进一步的评估。