2017-12-10 254 views
6

Użyłem poniższego kodu do utworzenia i zapełnienia tablicy, jednak jeśli chodzi o drukowanie tablicy, nie otrzymam wyniku, którego oczekuję podczas korzystania z funkcji Arrays.toString().Elementy wyjściowe tablicy z Arrays.toString()

Zamiast drukowania

newArray: [2, 4, 6] 
newArray: [8, 10, 12] 
etc.. 

drukuje

newArray: [[[email protected], [[email protected], [[email protected], [[email protected]] 
newArray: [[[email protected], [[email protected], [[email protected], [[email protected]] 
etc.. 

kodu:

public static void main(String[] args) { 
    int[][] newArray = new int[4][3]; 
    int number = 2; 
    for (int rowCounter = 0; rowCounter < newArray.length; rowCounter++) { 
     for (int colCounter = 0; colCounter < newArray[rowCounter].length; colCounter++) { 
      newArray[rowCounter][colCounter] = number; 
      number += 2; 
     } 
     System.out.println("newArray: " + Arrays.toString(newArray)); 
    } 
} 

Każda pomoc z tego będą mile widziane.

+0

Tu wynik jest adres tablicy wewnątrz tablicy nie rzeczywiste wartości chcesz –

Odpowiedz

12

Można użyć deepToString zamiast toString:

System.out.println(Arrays.deepToString(newArray)); 
+0

można proszę powiedzieć dlaczego toString nie działa. –

+1

@LalitVerma co się stanie, gdy użyjesz 'System.out.println (new int [] {1,2,3});'? –

+1

nauczyłem się czegoś nowego thanx –

3

Spróbuj

Arrays.deepToString(newArray) 
2

W wyniku pragnienie, upewnij się, że jesteś deklarowania tablicy jest one-dimensional. Użytkownik zadeklarował numer two dimensional array, którego nie używa się poprawnie.
Zmiana int[][] newArray to int[] newArray

+0

Widzę co masz na myśli. Jednak powinienem być bardziej zrozumiały, wynik, który pokazałem, jest tylko fragmentem rzeczywistego wyniku. W rzeczywistości istnieje wiele wierszy. Teraz to zmienię. –

2

wewnętrznie wywoła metodę Object.toString.

(obj == null) ? "null" : obj.toString(); 

Jeśli chcesz wydrukować cały element, a następnie jak wspomniano trzeba deepToString zamiast toString method.Internally będzie na tablicy typu obiektu będzie pętli tablicy i konwertować do łańcucha.

Dla przykładu każdy element tablicy w twoim przypadku to tablica int wywołająca toString.

if (eClass.isArray()) { 
        if (eClass == int[].class) 
         buf.append(toString((int[]) element));