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/

7voto

Dylan Black Punkte 252

Sie können das Array in einer Schleife durchlaufen und dabei jedes Element ausdrucken, während Sie die Schleife durchlaufen. Zum Beispiel:

String[] items = {"item 1", "item 2", "item 3"};

for(int i = 0; i < items.length; i++) {

    System.out.println(items[i]);

}

Ausgabe:

item 1
item 2
item 3

6voto

Nikhil S Marathe Punkte 181
  • Es ist ein sehr einfacher Weg, ein Array zu drucken, ohne eine Schleife in JAVA zu verwenden.

    -> For, Single oder einfaches Array:

     int[] array = new int[]{1, 2, 3, 4, 5, 6};
     System.out.println(Arrays.toString(array));

    Die Ausgabe :

          [1, 2, 3, 4, 5, 6]

    -> Dieses 2D-Array kann also nicht mit Arrays.toString() ausgegeben werden.

     int[][] array = new int[][]{{1, 2, 3, 4, 5, 6, 7}, {8, 9, 10, 11, 12,13,14}};
     System.out.println(Arrays.deepToString(array));

    Das Ergebnis:

       [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14]]

Erledigt Code behalten

6voto

Ravi Patel Punkte 129

Es gibt folgende Möglichkeiten, Array zu drucken

 // 1) toString()  
    int[] arrayInt = new int[] {10, 20, 30, 40, 50};  
    System.out.println(Arrays.toString(arrayInt));

// 2 for loop()
    for (int number : arrayInt) {
        System.out.println(number);
    }

// 3 for each()
    for(int x: arrayInt){
         System.out.println(x);
     }

5voto

Roam Punkte 4631

Es gibt eine zusätzliche Möglichkeit, wenn Ihr Array vom Typ char[] ist:

char A[] = {'a', 'b', 'c'}; 

System.out.println(A); // no other arguments

druckt

abc

4voto

Mohamed Idris Punkte 432

Eine vereinfachte Abkürzung, die ich ausprobiert habe, ist diese:

    int x[] = {1,2,3};
    String printableText = Arrays.toString(x).replaceAll("[\\[\\]]", "").replaceAll(", ", "\n");
    System.out.println(printableText);

Es wird gedruckt

1
2
3

Bei diesem Ansatz sind keine Schleifen erforderlich, und er ist nur für kleine Arrays geeignet.

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