return String[] führt zu [Ljava.lang.String;@50675690

Volnick

Mitglied
Java:
public static String[] allToLeet(String[] normals) {

    String[] nf  = {"hallo"};

    }

    return new String[] {Arrays.toString(nf)};

}
Ausgabe:
[Ljava.lang.String;@50675690
Ich versteh nicht, warum er statt "Hallo" --> [Ljava.lang.String;@50675690 ausgibt.
Mit Arrays.toString(nf) müsste ich doch die Strings innerhalb des Arrays nf erhalten oder nicht?
 
Die Methode gibt ein Array und keinen String zurück. Dem entsprechend müsstest Du in der Ausgabe auch Arrays.toString() verwenden.
 
Ich möchte jedoch, dass mein return mir den String gibt und nicht [Ljava.lang.String;@31b7dea0. Return muss vom Typ String[] sein.
Dein return gibt Dir nicht "[Ljava.lang.String;@31b7dea0" sondern ein Array zurück,, das Strings enthält. Dieses "[Ljava.lang.String;@31b7dea0" erhältst Du nur, wenn Du Dir von einem Array per toString() eine String-Darstellung des Arrays geben lässt.

Da Dir allToLeet ein Array zurückgibt, kannst Du auf die einzelnen Elemente des Arrays zugreifen.
Java:
String[] leets = allToLeet(normals);
for (int i = 0; i < leets.length; i++) {
    String element = leets[i]; // der i-te String im Array leets
    System.out.println(element);
}
 

Zurück
Oben