Arrays.toString în Java

toString transformă un array în text de forma [1, 2, 3]; deepToString face același lucru pentru matrice (array-uri de array-uri).

Sintaxă
static String toString(int[] a)          // și pentru celelalte tipuri
static String toString(Object[] a)
static String deepToString(Object[] a)   // pentru array-uri de array-uri

Ce face Arrays.toString

Arrays.toString(a) returnează elementele între paranteze drepte, separate prin virgulă și spațiu: [7, 10, 5]. Pentru null returnează textul "null". Este felul obișnuit de a afișa un array.

Pentru un array cu mai multe dimensiuni (int[][]), toString afișează doar adresele rândurilor. Arrays.deepToString(m) intră în fiecare rând și afișează totul: [[1, 2], [3, 4]].

Parametri

Parametru Descriere
a Array-ul de afișat.

Ce returnează

Un String cu elementele.

Exemple

Exemplul 1: Diferența dintre println direct și toString

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        double[] preturi = {12.5, 8.0, 30.99};
        String[] zile = {"luni", "marți", "miercuri"};
        String direct = String.valueOf(preturi);
        System.out.println("Direct începe cu: " + direct.substring(0, 3));
        System.out.println(Arrays.toString(preturi));
        System.out.println(Arrays.toString(zile));
        System.out.println(Arrays.toString((int[]) null));
    }
}

Rezultat

Direct începe cu: [D@
[12.5, 8.0, 30.99]
[luni, marți, miercuri]
null

Exemplul 2: Afișarea unei matrice cu deepToString

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] sala = {
            {1, 0, 1},
            {0, 0, 1},
            {1, 1, 1}
        };
        System.out.println(Arrays.deepToString(sala));
        for (int[] rand : sala) {
            System.out.println(Arrays.toString(rand));
        }
        String[][] orar = {{"Luni", "Mate"}, {"Marți", "Română"}};
        System.out.println(Arrays.deepToString(orar));
    }
}

Rezultat

[[1, 0, 1], [0, 0, 1], [1, 1, 1]]
[1, 0, 1]
[0, 0, 1]
[1, 1, 1]
[[Luni, Mate], [Marți, Română]]

Greșeli frecvente

  • Folosești toString pe o matrice și vezi [[I@.... Folosește deepToString.
  • Folosești deepToString pe un int[] simplu. Nu se compilează (primește Object[]); pentru un rând folosește toString.

Comenzi înrudite

  • Arrays: Clasă cu metode statice pentru array-uri: afișare, sortare, căutare, copiere, umplere, comparare și transformare în listă sau stream.
  • Arrays.equals: Compară două array-uri după conținut: true dacă au aceeași lungime și aceleași elemente pe aceleași poziții.
  • Arrays.fill: Pune aceeași valoare pe toate pozițiile unui array sau pe o porțiune din el.
  • String.join: Lipește mai multe șiruri într-unul singur, cu un separator între ele (opusul lui split).