2016-03-31 4 views
0

Ich schrieb Code in Java und bekam Ausgabe als 2 equals 11 .My CodeJava String Concatenation geben Ausgang als 2 gleich 11 auf concat 1 + 1 + "gleich" + 1 + 1

ist
public class StringPrct 
{ 
public static void main(String[]args) 
{ 
String s= 1+1+" equals "+1 +1; 
System.out.println(s); 
} 
} 

Nun ist die Frage Warum bekomme ich keine Ausgabe als 2 equals 2.

+0

sein sollte Es ist, weil Sie Räume zwischen den letzten zwei Einsen setzen. Sei vorsichtig, sie sind wichtig. –

+0

Nein zum Entfernen von Speicherplatz auch ich bekomme die gleiche Ausgabe. –

Antwort

6

Der + Bediener die same precedence whether it's addition or concatenation hat, und Mitarbeiter von links nach rechts. Also:

1 + 1 + " equals " + 1 + 1 

wertet als

(((1 + 1) + " equals ") + 1) + 1 
((2 + " equals ") + 1) + 1 
("2 equals " + 1) + 1 
"2 equals 1" + 1 
"2 equals 11" 

Wenn Sie dies außer Kraft setzen möchten, müssen Sie Klammern zur Verfügung zu stellen:

1 + 1 + " equals " + (1 + 1) 

Dies wird:

((1 + 1) + " equals ") + (1 + 1) 
(2 + " equals ") + (1 + 1) 
"2 equals " + (1 + 1) 
"2 equals " + 2 
"2 equals 2" 

Aus Gründen der Klarheit , solltest du wahrscheinlich t hinzufügen er Klammern zum ersten 1 + 1 als auch, so dass jemand Ihren Code liest nicht die geistige Übung der Zugabe von Klammern zu tun hat und die Bewertung nach unten:

(1 + 1) + " equals " + (1 + 1) 
1

das Hinzufügen einer numerischen Zeichenfolge ergibt eine Zeichenfolge. 1 + 1 ist 2, da du ein int zu int 2 hinzufügst + "equals" ist eine Zeichenkette, jedes Ding wird danach einfach verkettet.

1

Nach einem String sieht Java andere verkettete Argumente, als ob sie scheinbar toString() aufrufen müssten. Sie werden korrekte Ausgabe erhalten, wenn Sie Java einen Hinweis Operator Auftrag geben, indem Sie Ihre Operationen in Pars setzen:

String s= (1+1) +" equals "+ (1 +1); 
5

1 + 1 ist Integer (2)

2 + " equals " ist gegossen zu String (2 equals)

"2 equals " + 1 ist String (2 equals 1)

"2 equals 1" + 1 ist String (2 equals 11)

Es (1 + 1) + " equals " + (1 + 1)