打印arrays错误

这可能是一个简单的修复,但我只是没有看到它。 我想弄清楚,如何让我的printOut()方法从主Project5PartA正确打印? 我需要获取,设置和返回方法吗? 另外,我的while循环在Tester类中是否必要?

程序编译并保持运行到无穷大,所以我想while循环是错误的。 但它也只在每一行连续打印出[Ljava.lang.String;@7c1c8c58

扩展main的类是无关紧要的,也是项目的一部分。 如果发布错误并感谢任何帮助,请道歉。

整个计划的输出类似于:

树皮,树皮。

喵喵。

Roooaaar。

狗说低音,低音。

猫说喵,喵。

测试员类:

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

使用Arrays.toString()打印数组的内容。 实际上不打印arrays本身。

 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 } 

因为printArray是数组而没有toString()方法,所以必须单独打印出每个元素或使用Arrays.toString(printArray)方法。

如果它在while循环中,这样的东西会让你变得越来越大。 将它放在while循环之外:

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

或者在while循环中:

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

除非你真的希望你的程序永远运行,否则你不需要while循环。

您应该按如下方式更改print语句。 (您正在打印数组对象,而不是数组内容。)

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