Warum sollte ich Integer.toString() statt nur den Druck des Integer?
War ich nach einem Java-tutorial und es wurde mit mir etwas zu tun:
int k = 5;
System.out.println("The number is " + Integer.toString(k));
So wie ein guter sport und ich folgte zusammen, aber ich kann mir nicht helfen, aber Frage mich, warum diese Methode überhaupt? Scheint wie eine Menge zusätzlicher Eingabe, um die gleiche Funktionalität zu erhalten, wie:
int k = 5;
System.out.println("The number is " + k);
Gibt es einen guten Grund für die Verwendung von toString()
- Methode für nicht-string-Datentypen? Und in meinem konkreten Beispiel gibt es int
Werte, die nicht automatisch toString ' ed?
Es gibt keinen signifikanten Unterschied zwischen den beiden. Das tutorial kann wollte, um zu betonen, dass
Ich schon gepostet, eine Antwort weiter oben, aber wollte darauf hinweisen, für Gelegenheits-Leser, gibt es praktische Fälle, in denen Sie muss verwenden Sie Integer.toString(int) und/oder andere Schutzmaßnahmen bei der Verkettung von Elementen, die in einem längeren String mit den
toString
heißt "unter der Decke", sondern, für Tag-zu-Tag-Programmierung ist es nur zusätzliche Unordnung.Ich schon gepostet, eine Antwort weiter oben, aber wollte darauf hinweisen, für Gelegenheits-Leser, gibt es praktische Fälle, in denen Sie muss verwenden Sie Integer.toString(int) und/oder andere Schutzmaßnahmen bei der Verkettung von Elementen, die in einem längeren String mit den
+
Betreiber. Wenn Sie nicht vorsichtig sind, die String-Verkettung mit der +
Betreiber kann unerwartete Ergebnisse liefern.InformationsquelleAutor Mike | 2013-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eines der vielen "sichere Programmierung" Praktiken, die Sie ergreifen kann, um die Verständlichkeit zu erhöhen und zu verhindern, subtilen Fehler, die Sie oder eine zukünftige maintainer des Codes, einführen konnte. Nehmen Sie das folgende Beispiel:
Ausgabe:
number=5
Nehmen wir nun an, das Sie drucken möchten die Anzahl ersten und dem letzten text. Alles, was ich Tue, ist durch das vertauschen der ersten und letzten Elemente in der string-Verkettung:
Ausgabe:
66number
Oops! Der int-Wert von
=
wurde Hinzugefügtk
statt verkettet. Eine Lösung ist, den=
in eineString
. Eine andere Lösung ist explizit in derint
zu einemString
:Ausgabe:
5=number
"Oh, aber ich würde das nie tun, jedenfalls", sagen Sie. "Jemand in Ihrem rechten Verstand würde nur die
=
Teil der anderen Schnur." Aber was ist, wenn Sie die Umsetzung Teil eines basic-Rechner-app, und Sie möchten, um die Ausgabe der Ausdruck und sein Ergebnis? Wenn Sie wirklich versuchen, vorsichtig zu sein, ich nehme an, Sie verwendenStringBuilder.append()
zum verketten von teilen des Ausdrucks. Aber wenn nicht, dann hoffe ich, dass Sie nicht schreiben Sie die erste Implementierung derdisplay
Methode unten.Ausgabe:
InformationsquelleAutor rob
Einige Leute glauben, dass es klarer ist. esp für Anfänger, die vielleicht noch nicht verstanden, dass Sie im Grunde die gleiche Sache.
Hinweis: In Java 7 update 9, es nicht schaffen, den ersten String wie append(int) sieht wie folgt aus
Er wandelt die Anzahl der Meerenge in das StringBuilder-Vermeidung der Notwendigkeit, erstellen Sie einen String-ersten.
Nicht. Alle primitiven Werte können toString ' ed.
Die einzige Ausnahme die ich kenne ist signalling und quiet not-A-Number Werte als Java kümmert sich nicht um solche Dinge. Beide erscheinen als "NaN" und es gibt keine Möglichkeit zu sagen, der Unterschied von der toString() (oder die meisten Funktionen in Java)
float
/double
, und nichtint
.InformationsquelleAutor Peter Lawrey
In der oben drucken "Die Zahl ist " ist string, also String+(etwas) ist String nur.Also in diesem Fall keine Notwendigkeit zum Aufruf von toString() an alle.Also, wenn Sie drucken wollen, der k-Wert nur dann auch keine Notwendigkeit, rufen Sie toString ()
S.O.P
internaqlly ruft toString().Also abschließend können wir sagen, es sei denn, speziell Sie möchten, konvertieren Integer zu String sollten Sie nicht rufen Sie toString () - Methode.
InformationsquelleAutor Android Killer
Verwenden Sie die zweite version. Für string-concatination Ausdrücke wie
javac baut der eigentliche code mit StringBuilder
also System.aus.println einfach druckt die resultierende Zeichenfolge, die den vollständigen code
InformationsquelleAutor Evgeniy Dorofeev
Es erlaubt, die Zahl zu einem String-Datentyp, so ist es ein string. Wie Mob bereits sagte aber, es ist nicht mal eine ganze Zahl, mit zu beginnen. Sie hätte zu analysieren, es zu einem integer bevor es zu einer.
Und genau wie die Antwort, Sie parrot, dies ist falsch.
println führt diese Konvertierung automatisch,wir müssen nicht TUN, DASS
InformationsquelleAutor Dustin Koeller