¿Por qué obtengo una suma diferente y errores para la suma en Java?
Soy realmente nuevo en Java. Tengo una pregunta con respecto a los números. Me dieron la tarea de imprimir 2 números uno al lado del otro.
Por ejemplo, si hay 2 números:a = 5
, b = 9
, debería imprimir ambos uno al lado del otro. Entonces la salida se vería 59
.
En python, podemos hacer:
print(a,b)
Aunque agrega un espacio, puedo eliminarlo más tarde.
Pero en Java. cuando hago System.out.println(a,b)
, obtengo:
error: no suitable method found for println(int,int) System.out.println(a,b); ^
Entonces, después de rascarme la cabeza un poco, se me ocurrió System.out.println(a+''+b)
Y luego da:
error: empty character literal System.out.println(a+''+b); ^
Entonces, mirando el error, parecía ''
es inválido. Así que hice ' '
Y el resultado que obtuve fue:
46
¿Por qué recibí un error? Cuando lo hago:
System.out.println(a+""+b);
Imprime lo que quiero:59
Aquí está mi código (en funcionamiento):
public class Main { public static void main(String[] args) { int a=5; int b=6; System.out.println(a+""+b); } }
Solo quiero saber por qué funciona esto anterior mientras hago ' '
no. ¿Está relacionado con el tipo de datos?
Respuesta
' '
es un char
. Se convertirá automáticamente a un int
(el código ASCII de blank
se utiliza, tiene el valor 32
). Luego se ejecuta la suma (5 + 32 + 9
, que se evaluará como 46
). Eso explica por qué vemos el 46
siendo impreso.
Reemplazando ' '
con ""
forzará el int
-valores siendo autocasteados a String
s, que luego funcionará como se esperaba.
Otra posible solución sería usar System.out.printf("%d%d%n", a, b);
.
Demostración de Ideone