Mikä on yksinkertaisin tapa tulostaa Java-muotoinen joukko?
Javassa matriisit eivät ohita toString()
-ohjelmaa, joten jos yrität tulostaa sellaisen suoraan, saat className
+ '@' + matriisin hashCode
heksan, kuten Object.toString()
määrittelee:
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
Mutta tavallisesti me'haluaisimme itse asiassa jotain, joka muistuttaa [1, 2, 3, 4, 5]
. Mikä on yksinkertaisin tapa tehdä se? Tässä on joitakin esimerkkejä syötteistä ja tulosteista:
// 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]
1838
3
Java 5:stä lähtien voit käyttää
Arrays.toString(arr)
taiArrays.deepToString(arr)
matriisien sisällä oleville matriiseille. Huomaa, ettäObject[]
-versio kutsuu.toString()
:tä jokaiselle objektille matriisissa. Tulos on jopa koristeltu juuri sillä tavalla kuin pyydät.Esimerkkejä:
Yksinkertainen joukko:
Tulos:
Nested Array:
Output:
double
Array:Tulos:
int
Array:Tulos:
Tarkista aina ensin standardikirjastot. Kokeile:
tai jos matriisisi sisältää muita matriiseja elementteinä:
Jos käytät Java 1.4:ää, voit sen sijaan tehdä näin:
(Tämä toimii tietysti myös 1.5+:ssa.)