FAQ

Java

JSP

Servlet


Advertisement



How does the result differ between the String and number operands of the '+' operator?

Let's take a look at the following example,

class Program {

public static void main(String[] args) {
System.out.println(1 + 2 + " fiddlers");
System.out.println("fiddlers " + 1 + 2);

}

}

The output is:

3 fiddlers
fiddlers 12

The + operator is syntactically left-associative, the expression a + b + c is always regarded as (a + b) + c. The type analysis to represent string concatenation or addition is based on the evaluation order.

In the 1 + 2 + " fiddlers", the first two are int, so the result is 3. Then since the next operand is a String object, 3 is converted to String and "fiddlers" is concatenated to 3, so the result is "3 fidders".

In the "fiddlers " + 1 + 2, since the first operand is a String, the rest of the operands are converted to String then concatenated to it, so the result is "fiddlers 12".


Printer-friendly version Printer-friendly version | Send this 
article to a friend Mail this to a friend

Previous Next vertical dots separating previous/next from contents/index/pdf Contents

  |   |