2016-04-09 5 views
0

Ich versuche, Integer-Eingaben in binäre Zeichenfolge zu konvertieren und sie zu einer langen Zeichenfolge zu verketten. Beispiel:Warum kann ich Integer.toBinaryString() nicht mit einer anderen Zeichenfolge in Java verknüpfen?

input: 4 5 
output: 0100 0101 

Nach dem API-Check-out und zu sehen, dass toBinaryString gibt einen String zurück Ich bin überzeugt, soll meine Lösung arbeiten, aber es funktioniert nicht.

Meine Lösung:

String str = "5 in binary: "; 
str.concat(Integer.toBinaryString(5)); 

oder

String str = "5 in binary: "; 
str + Integer.toBinaryString(5); 

Jeder von ihnen wird nur aus der Original-Zeichenkette drucken "5 in binär:" statt "5 in binär: 0101".

toBinaryString() gibt einen String-Wert zurück, so sollte dies möglich sein, sollte es nicht?

+0

Strings sind unveränderlich, so str.concat() ändert nicht str, es erstellt eine neue String-Instanz, die weggeworfen wird, weil es nicht zugeordnet zu irgendetwas. –

+0

Danke, ich liebe dich. – user3590350

Antwort

4

Weil String unveränderliches Objekt ist. So ändert str + Integer.toBinaryString(5); den Inhalt von str nicht. Es gibt nur ein anderes String-Objekt zurück. Sie brauchen das neue Objekt str, so etwas vergeben:

str = str + Integer.toBinaryString(5);