Difference between int and int received by ParseInt in java
java, parseint
Solution
Use brackets as follows
System.out.println((i+1) + " " + (j+1));
From the docs
The + operator is syntactically left-associative, no matter whether it is later determined by type analysis to represent string concatenation or addition. In some cases care is required to get the desired result. For example, the expression:
a + b + c is always regarded as meaning: (a + b) + c
Extending this to your scenario
i+1 + " " + j+1
it becomes
(((i + 1) + " ") + j)+1
Since `i` is an int so `(i + 1) = 1` , simple addition
`" "` is a `String` hence `((i + 1) + " ")` = `1` WITH SPACE (String concatenation)
Similarly when `j` and last `1` is added, its being added to a `String` hence `String` concatenation takes place, which justifies the output that you are getting.
See
- JLS 15.18.1 String Concatenation Operator +
Problem
``` int i = 0; int k = Integer.parseInt("12"); int j = k; System.out.println(i+1 + " " + j+1); ``` Strangely the output received is ``` 1 121 ``` I can not figure out this basic difference. Please help me.