2013-03-19 101 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