2015-11-15 19 views
0

我被編碼的程序爲學校在Java中使用Eclipse和我得到的輸出問題標準輸出奇怪的輸出,代碼如下:上使用Java

public class Main { 
    public static boolean[] cercaK(int k , String[] a){ 
     boolean b[] = new boolean[a.length]; 
     int conta = 0; 
     for(int i = 0; i < a.length; i++){ 
      b[i] = false; 
      int j = 0; 
      while(j < a[i].length()-1 && !b[i]){ 
        if(a[i].charAt(j)==a[i].charAt(j+1)) 
         conta++; 
        else 
         conta = 0; 
        if (conta == k) 
         b[i] = true; 
        j++; 
      } 
     } 
     return b; 
    } 
    public static void main(String[] args) { 
     String[] a = {"accesso","bbtcrryy","ggg"}; 
     int k = 2; 
     if (k<=0) 
      System.out.println("Errore!"); 

     boolean[] b = cercaK(k,a); 

     for(int i = 0; i < b.length; i++) 
      System.out.print(b); 
    } 
} 

,輸出是真的很奇怪:

[[email protected][[email protected][[email protected] 

我無法理解這些字符串是從哪裏來的。 任何人都可以幫我嗎?謝謝!

編輯:我發現了錯誤,

for(int i = 0; i < b.length; i++) 
      System.out.print(b[i]); 
+0

沒錯。你沒有打印'array'的元素,你直接調用它。 GJ! ;) – xFunkyTImes

回答

0

變化

for(int i = 0; i < b.length; i++) 
    System.out.print(b); 

for(int i = 0; i < b.length; i++) 
    System.out.print(b[i]); 

,以便打印陣列的項目,而不是數組本身。

0

這是因爲b的類型爲boolean[]。當你嘗試打印數組時,你可以期待類似的輸出。這是打印的所有元素的正確方法:

for(int i = 0; i < b.length; i++) 
     System.out.print(b[i]); 

或者,您可以使用for-each循環:

for(boolean var: b) { 
    System.out.println(var); 
}