2013-03-19 93 views
1

這可能是一個簡單的修復,但我只是沒有看到它。我試圖弄清楚,如何讓我的printOut()方法從主要的Project5PartA正確打印?我需要獲取,設置和返回方法嗎?另外,我的while循環在Tester類中甚至是必需的嗎?打印陣列錯誤

該程序編譯並繼續運行到無窮大,所以我猜while循環是錯誤的。但每行只能連續打印[Ljava.lang.String;@7c1c8c58

擴展主類的類是不相關的,也是項目的一部分。道歉,如果這是張貼錯誤,並感謝您的任何幫助。

整個程序的輸出將類似於:

樹皮,樹皮。

喵,喵。

Roooaaar。

狗說woof,woof。

貓說喵,喵。

Tester類:

public class Tester { 

String[] animalArray = {"Dog", "Cat", "tRex", "Cow", "Pig", "Snake", 
    "Goat", "Owl", "Chicken", "Frog"}; 

String[] noiseArray = {"Woof, woof", "Meow, meow", "Roooaaar", "Mooo", 
    "Oink, oink", "Hissss", "Baaa", "Hoot, hoot", "Bock, bock", 
    "Ribbit, ribbit"}; 

String[] printArray = new String[10]; 

public String printOut() { 
    while (true) { 
     for (int i = 0; i < 10; i++) { 

      String value = (animalArray[i] + " says " + noiseArray[i] + "."); 
      printArray[i] = value; 

      System.out.println(); 
      System.out.println(printArray); 
      break; 

     } 
    } 
} 
} 
+0

哇,我覺得非常非常愚蠢的。完全忘記了Arrays.toString()。每個人都發布了幫助,糟透了,我只能選擇一個。再次,謝謝大家! – user1422051 2013-03-19 21:18:43

回答

2

使用Arrays.toString()打印數組的內容。不要實際打印陣列本身。

System.out.println(printArray); // Prints [Ljava.lang.String;@7c1c8c58 
System.out.println(Arrays.toString(printArray0); // Prints [Dog says Woof, woof...] 

如果您確實使用Arrays.toString(),請在循環外打印數組。 您也可以在循環內打印System.out.println(printArray[i])陣列的每個部分。

public String printOut() { 
    while (true) { 
     for (int i = 0; i < 10; i++) { 

      String value = (animalArray[i] + " says " + noiseArray[i] + "."); 
      printArray[i] = value; 
      System.out.println(); 
      System.out.println(printArray[i]); // This works 
      break; 
     } 
    } 
    System.out.println(Arrays.toString(printArray); // Also works 
} 
1

由於printArray是陣列和不具有你將不得不seperatly打印出的每個元件,或使用Arrays.toString(printArray)方法toString()方法。

像這樣的事情將讓你越來越數組,如果它在while循環。將它放置在while循環外:

System.out.println(Arrays.toString(printArray)); 

還是在while循環:

System.out.println(printArray[i]); 
+0

謝謝你的幫助! – user1422051 2013-03-19 21:21:38

1

你不需要while循環,除非你真的想你的程序一直運行下去。

你應該改變你的打印聲明如下。 (您使用的打印數組對象,而不是數組內容。)

System.out.println(printArray[i]); 
+0

謝謝你的幫助! – user1422051 2013-03-19 21:22:00