2297 Stimmen

Wie kann man ein Java-Array am einfachsten ausdrucken?

In Java überschreiben Arrays nicht die toString() Wenn Sie also versuchen, einen direkt zu drucken, erhalten Sie die Meldung className + '@' + das Hexadezimalzeichen der [hashCode](https://en.wikipedia.org/wiki/Java_hashCode()) des Arrays, wie definiert durch Object.toString() :

int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray);     // prints something like '[I@3343c8b3'

Aber normalerweise wollen wir eher etwas wie [1, 2, 3, 4, 5] . Wie lässt sich das am einfachsten bewerkstelligen? Hier sind einige Beispiele für Eingaben und Ausgaben:

// Array of primitives:
int[] intArray = new int[] {1, 2, 3, 4, 5};
//output: [1, 2, 3, 4, 5]

// Array of object references:
String[] strArray = new String[] {"John", "Mary", "Bob"};
//output: [John, Mary, Bob]

9 Stimmen

Was soll die Darstellung für andere Objekte als Strings sein? Das Ergebnis des Aufrufs von toString? In Anführungszeichen oder nicht?

3 Stimmen

Ja, die Objekte werden durch ihre toString()-Methode und ohne Anführungszeichen dargestellt (die Beispielausgabe wurde gerade bearbeitet).

2 Stimmen

In der Praxis, eng verbunden mit stackoverflow.com/questions/29140402/

1voto

Pradip Karki Punkte 592

Bei Verwendung von Commons.Lang Bibliothek könnten wir tun:

ArrayUtils.toString(array)

int[] intArray = new int[] {1, 2, 3, 4, 5};
String[] strArray = new String[] {"John", "Mary", "Bob"};
ArrayUtils.toString(intArray);
ArrayUtils.toString(strArray);

Ausgabe:

{1,2,3,4,5}
{John,Mary,Bob}

1voto

Anubhav Mishra Punkte 127

In JDK1.8 können Sie Aggregatoperationen und einen Lambda-Ausdruck verwenden:

String[] strArray = new String[] {"John", "Mary", "Bob"};

// #1
Arrays.asList(strArray).stream().forEach(s -> System.out.println(s));

// #2
Stream.of(strArray).forEach(System.out::println);

 // #3
 Arrays.stream(strArray).forEach(System.out::println);

/* output:
John
Mary
Bob
*/

Ab Java 8 kann man auch die join()-Methode nutzen, die von der String-Klasse bereitgestellt wird, um Array-Elemente ohne die Klammern und getrennt durch ein beliebiges Begrenzungszeichen (im folgenden Beispiel das Leerzeichen) auszugeben

string[] greeting = {"Hey", "there", "amigo!"};
String delimiter = " ";
String.join(delimiter, greeting) 

` Die Ausgabe lautet: "Hallo, Amigo!"

0voto

jkwli Punkte 53

Durch die Verwendung des java.util.Arrays:

String mRole = "M_XXX_ABC";        
System.out.println(Arrays.asList(mRole.split("_")).toString());

Ausgabe: [M, XXX, ABC]

-1voto

GT_hash Punkte 145

Es gibt mehrere Möglichkeiten, ein Array Elemente zu drucken.Zunächst werde ich erklären, dass, was ist ein Array?..Array ist eine einfache Datenstruktur für die Speicherung von Daten..Wenn Sie ein Array definieren, weisen Sie eine Reihe von zusätzlichen Speicherblöcken im RAM.Diese Speicherblöcke sind eine Einheit genommen.

Ok, ich werde ein Array wie folgt erstellen,

class demo{
      public static void main(String a[]){

           int[] number={1,2,3,4,5};

           System.out.print(number);
      }
}

Schauen Sie sich nun die Ausgabe an,

enter image description here

Sie können sehen, eine unbekannte Zeichenfolge gedruckt..Wie ich bereits erwähnt, die Speicheradresse, deren Array (Zahl Array) deklariert wird gedruckt.Wenn Sie Elemente in dem Array anzeigen möchten, können Sie "for-Schleife", wie diese verwenden.

class demo{
      public static void main(String a[]){

           int[] number={1,2,3,4,5};

           int i;

           for(i=0;i<number.length;i++){
                 System.out.print(number[i]+"  ");
           }
      }
}

Schauen Sie sich nun die Ausgabe an,

enter image description here

Ok, erfolgreich gedruckt Elemente von einer Dimension Array Jetzt werde ich zwei Dimension Array betrachten Ich werde zwei Dimension Array als "number2" deklarieren und drucken Sie die Elemente mit "Arrays.deepToString()" keyword.Before mit, dass Sie haben zu importieren 'java.util.Arrays' Bibliothek.

 import java.util.Arrays;

 class demo{
      public static void main(String a[]){

           int[][] number2={{1,2},{3,4},{5,6}};`

           System.out.print(Arrays.deepToString(number2));
      }
}

betrachten Sie das Ergebnis,

enter image description here

Gleichzeitig können mit zwei for-Schleifen 2D-Elemente gedruckt werden Danke!

0 Stimmen

Int array[] = {1, 2, 3, 4, 5}; for (int i:array) System.out.println(i);

0 Stimmen

Versuchen Sie dies, ich denke, das ist der kürzeste Weg, um Array zu drucken

0 Stimmen

"die Speicheradresse, deren Array (Zahlenarray) deklariert ist, wird gedruckt" Das ist überhaupt nicht wahr, es ist der System-Hash-Code des Objekts, und dieser kann auf vielen Dingen basieren, einschließlich der Speicheradresse, aber diese könnte sich später ändern und der Hash-Code würde sich nicht ändern. Und derzeit ist es meist eine Zufallszahl. gotofinal.dev/java/2017/10/08/java-default-hashcode.html

-1voto

Chen Jin Punkte 39

ToString ist eine Möglichkeit, ein Array in eine Zeichenkette zu konvertieren.

Sie können auch verwenden:

for (int i = 0; i < myArray.length; i++){
System.out.println(myArray[i] + " ");
}

Mit dieser for-Schleife können Sie jeden Wert Ihres Arrays der Reihe nach ausgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X