Suma y concatenación usando el operador + en Java

Hasta ahora, en Java, estábamos jugando con la parte integral donde vimos que el operador + se comporta de la misma manera que se suponía que debía hacerlo porque el sistema decimal se estaba sumando en el fondo a nivel binario y el número binario resultante se arroja a consola en el sistema decimal genérico. Pero los geeks incluso se preguntaron qué pasa si jugamos este operador + entre un número entero y una string.

Ejemplo

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));
    }
}
Producción

9GeeksforGeeks
GeeksforGeeks2016
8GeeksforGeeks2016
8GeeksforGeeks9

Salida Explicación: Esta salida impredecible se debe a que el compilador evalúa la expresión dada de izquierda a derecha dado que los operadores tienen la misma precedencia. Una vez que encuentra la string, considera el resto de la expresión como una string (nuevamente, según el orden de precedencia de la expresión).

System.out.println(2 + 0 + 1 + 6 + "GeeksforGeeks");  

Imprime la suma de 2,0,1 y 6 que es igual a 9

System.out.println("GeeksforGeeks" + 2 + 0 + 1 + 6); 

Imprime la concatenación de 2,0,1 y 6 que es 2016 ya que encuentra la string inicialmente. Básicamente, las strings tienen prioridad porque tienen una prioridad de conversión más alta que los números enteros.

System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + 2 + 0 + 1 + 6); 

Imprime la suma de 2,0,1 y 5 mientras que la concatenación de 2,0,1 y 6 se basa en los ejemplos anteriores .

System.out.println(2 + 0 + 1 + 5 + "GeeksforGeeks" + (2 + 0 + 1 + 6)); 

Imprime la suma de 2,0,1 y 5 y 2,0,1 y 6 debido a la precedencia de ( ) sobre +. Por lo tanto, la expresión entre ( ) se calcula primero y luego se lleva a cabo una evaluación adicional.

Este artículo es una contribución de Pranjal Mathur. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *