¿Cuál es la forma más sencilla de imprimir una matriz Java?

Resuelto Alex Spurling asked hace 15 años • 37 respuestas

En Java, las matrices no se anulan toString(), por lo que si intenta imprimir una directamente, obtendrá className+ '@' + el hexadecimal de hashCodela matriz, como se define en Object.toString():

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

Pero normalmente, en realidad querríamos algo más parecido a [1, 2, 3, 4, 5]. ¿Cuál es la forma más sencilla de hacerlo? A continuación se muestran algunos ejemplos de entradas y salidas:

// 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]
Alex Spurling avatar Jan 04 '09 03:01 Alex Spurling
Aceptado

Desde Java 5 puedes usar Arrays.toString(arr)o Arrays.deepToString(arr)para matrices dentro de matrices. Tenga en cuenta que la Object[]versión llama .toString()a cada objeto de la matriz. La salida incluso está decorada exactamente de la manera que usted lo solicita.

Ejemplos:

  • Matriz sencilla:

    String[] array = new String[] {"John", "Mary", "Bob"};
    System.out.println(Arrays.toString(array));
    

    Producción:

    [John, Mary, Bob]
    
  • Matriz anidada:

    String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
    // Gives undesired output:
    System.out.println(Arrays.toString(deepArray));
    // Gives the desired output:
    System.out.println(Arrays.deepToString(deepArray));
    

    Producción:

    [[Ljava.lang.String;@106d69c, [Ljava.lang.String;@52e922]
    [[John, Mary], [Alice, Bob]]
    
  • doubleFormación:

    double[] doubleArray = { 7.0, 9.0, 5.0, 1.0, 3.0 };
    System.out.println(Arrays.toString(doubleArray));
    

    Producción:

    [7.0, 9.0, 5.0, 1.0, 3.0 ]
    
  • intFormación:

    int[] intArray = { 7, 9, 5, 1, 3 };
    System.out.println(Arrays.toString(intArray));
    

    Producción:

    [7, 9, 5, 1, 3 ]
    
randers avatar Jan 03 '2009 20:01 randers

Siempre consulte primero las bibliotecas estándar.

import java.util.Arrays;

Entonces intenta:

System.out.println(Arrays.toString(array));

o si su matriz contiene otras matrices como elementos:

System.out.println(Arrays.deepToString(array));
Limbic System avatar Jan 03 '2009 20:01 Limbic System