Unerwartete Ausgabe von Array.toString()
In Java wird die toString()-Methode häufig verwendet, um ein Array in ein menschliches Array umzuwandeln -lesbare String-Darstellung. Im Fall von Zeichenarrays generiert die standardmäßige toString()-Implementierung jedoch eine unerwartete Ausgabe, die als zufällige Folge von Zeichen erscheint.
Dieses Problem tritt auf, weil die für Arrays implementierte standardmäßige toString()-Methode die zurückgibt Identitäts-Hash-Code des Arrays, gekennzeichnet durch „[C@gefolgt von einer Hexadezimalzahl. Diese Darstellung ist für Debugging-Zwecke nützlich, aber nicht für Menschen Verbrauch.
Lösung: Verwenden von Arrays.toString()
Um eine für Menschen lesbare Zeichenfolgendarstellung eines Zeichenarrays zu erhalten, müssen Sie Arrays.toString( )-Methode verarbeitet stattdessen speziell Zeichenarrays und konvertiert sie in eine Zeichenfolge, die alle Zeichen innerhalb des Arrays enthält.
Unten finden Sie einen aktualisierten Codeausschnitt das zeigt, wie man Arrays.toString() verwendet:
import java.util.Arrays; class ToString { public static void main(String[] args) { char[] array = {'a', 'b', 'c', 'd', 'e', 'f'}; System.out.println(Arrays.toString(array)); } }
Dieser Code gibt die erwartete Ausgabe aus: „abcdef“.
Erklärung
Die Methode Arrays.toString() wurde speziell für die Verarbeitung von Arrays verschiedener Typen, einschließlich Zeichenarrays, entwickelt. Es durchläuft das Array und hängt jedes Zeichen an die resultierende Zeichenfolge an. Dieser Prozess führt zu einer für Menschen lesbaren Zeichenfolgendarstellung des Arrays.
Grund für das Standardverhalten
Die standardmäßige toString()-Implementierung für Arrays sollte eine prägnante Darstellung bieten Darstellung des Arrays für Debugging-Zwecke. Durch die Anzeige des Identitäts-Hash-Codes können Entwickler schnell den Speicherort des Arrays identifizieren und es von anderen Arrays unterscheiden.
Diese Darstellung ist jedoch nicht praktikabel für die Anzeige des Array-Inhalts für Benutzer oder für Verwendung in Szenarien, in denen die Zeichenfolgendarstellung gelesen oder verarbeitet werden soll.
Das obige ist der detaillierte Inhalt vonWarum erzeugt „Array.toString()' eine unerwartete Ausgabe für Zeichenarrays in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!