Kako najenostavneje natisniti polje v Javi?
V Javi matrike ne razveljavljajo funkcije toString()
, zato če jo poskušate natisniti neposredno, dobite className
+ '@' + šestnajstino hashCode
matrike, kot jo določa Object.toString()
:
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
Toda običajno bi dejansko želeli nekaj bolj podobnega kot [1, 2, 3, 4, 5]
. Kakšen je najpreprostejši način za to? Tukaj je nekaj primerov vhodov in izhodov:
// 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
Od Jave 5 lahko za polja v poljih uporabite
Arrays.toString(arr)
aliArrays.deepToString(arr)
. Upoštevajte, da različicaObject[]
kliče.toString()
za vsak objekt v polju. Izpis je celo okrašen na točno tak način, kot ste vprašali.Primeri:
Enostavno polje:
Izhodni rezultat:
Vgnezdeno polje:
Izhod:
double
Polje:Izpis:
int
Polje:Izhod:
Vedno najprej preverite standardne knjižnice. Poskusite:
ali če vaše polje kot elemente vsebuje druga polja:
Če uporabljate Javo 1.4, lahko namesto tega uporabite:
(To seveda deluje tudi v različici 1.5+.)