2017-12-10 77 views
6

के साथ किसी सरणी के आउटपुट तत्वों को मैंने सरणी को बनाने और पॉप्युलेट करने के लिए नीचे दिए गए कोड का उपयोग किया है, हालांकि, जब सरणी मुद्रित करने की बात आती है तो मुझे Arrays.toString() फ़ंक्शन का उपयोग करते समय परिणाम प्राप्त नहीं होता है।Arrays.toString()

बजाय मुद्रण

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

यह प्रिंट

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

कोड:

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)); 
    } 
} 

इस के साथ किसी भी मदद की बहुत सराहना की जाएगी।

+0

यहाँ परिणाम सरणी नहीं वास्तविक मान आप चाहते हैं –

उत्तर

12

आप toString के बजाय deepToString उपयोग कर सकते हैं:

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

आप कर सकते हैं कृपया क्यों toString काम नहीं किया बता अंदर सरणी का पता है। –

+1

@LalitVerma क्या होता है जब आप 'System.out.println (नया int [] {1,2,3}) का उपयोग करते हैं; '? –

+1

कुछ नया थेंक्स –

2

प्रयास करें परिणाम आप की इच्छा के साथ, यकीन है कि सरणी आप की घोषणा कर रहे हैं one-dimensional है या नहीं। आपने two dimensional array घोषित किया है जिसका आप सही उपयोग नहीं कर रहे हैं।
int[][] newArray to int[] newArray

+0

नहीं देखता है, मुझे लगता है कि आपका क्या मतलब है। हालांकि, मुझे और स्पष्ट होना चाहिए था, परिणाम मैंने दिखाया है कि वास्तविक परिणाम का सिर्फ एक स्निपेट है। वास्तविकता में, कई पंक्तियां हैं। मैं इसे अभी संपादित करूंगा। –

2

जब आप toString(Object[] a) आंतरिक रूप से कॉल करते हैं तो यह Object.toString विधि को कॉल करेगा।

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

आप तो सभी तत्व मुद्रित करने के लिए के रूप में उल्लेख आप deepToString बजाय toString करने के लिए है method.Internally यह एक ऑब्जेक्ट प्रकार सरणी के लिए सरणी के माध्यम से पाश और स्ट्रिंग के लिए परिवर्तित कर देंगे जाएगा चाहते हैं।

उदाहरण के लिए आपके मामले में प्रत्येक सरणी तत्व int सरणी को स्ट्रिंग को कॉल करेगा।

if (eClass.isArray()) { 
        if (eClass == int[].class) 
         buf.append(toString((int[]) element)); 
संबंधित मुद्दे