这可能是一个简单的修复,但我只是没有看到它。我想知道,如何让我的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;
}
}
}
}
答案 0 :(得分: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 :(得分:1)
因为printArray是数组而没有toString()方法,所以必须单独打印出每个元素或使用Arrays.toString(printArray)方法。
如果是在while循环中,这样的东西会让你成长。将它放在while循环之外:
System.out.println(Arrays.toString(printArray));
或在while循环中:
System.out.println(printArray[i]);
答案 2 :(得分:1)
除非你真的希望程序永远运行,否则你不需要while循环。
您应该按如下方式更改print语句。 (您正在打印数组对象,而不是数组内容。)
System.out.println(printArray[i]);