I am really new to Java. I have a question regarding the numbers. I was given a task of printing 2 numbers side by side.
For example, if there are 2 numbers: a = 5
, b = 9
, I should print both of them side by side. So the output would look 59
.
In python, we can do:
print(a,b)
Even though it adds a space, I can remove that later.
But in Java. when I do System.out.println(a,b)
, I get:
error: no suitable method found for println(int,int) System.out.println(a,b); ^
So after scratching my head for a little bit, I came up with System.out.println(a+''+b)
And then it gives:
error: empty character literal System.out.println(a+''+b); ^
So, looking at the error, it looked like ''
is invalid. So I did ' '
And the result I got was:
46
Why did I get an error? When I do:
System.out.println(a+""+b);
It prints what I want: 59
Here is my code (working):
public class Main { public static void main(String[] args) { int a=5; int b=6; System.out.println(a+""+b); } }
I just want to know why does this above work while doing ' '
doesn’t. It is related to the data type?
Advertisement
Answer
' '
is a char
. It will be autocasted to an int
(the ASCII code of blank
is used, it has the value 32
). Then the addition is executed (5 + 32 + 9
, which will evaluate to 46
). That explain why we see the 46
being printed out.
Replacing ' '
with ""
will force the int
-values being autocasted to String
s, which will then work as expected.
Another possible solution woudl be to use System.out.printf("%d%d%n", a, b);
.