我无法返回字符串2d数组,因此它将以表格形式显示。这就是我得到的:
如果我写这段代码,它会在一行上显示数组。
public String toString() {
return Arrays.deepToString(hidingPlaces);
}
如果我写这个,我就没有输出。
public String toString() {
String aString = "";
for(int row = 0; row < arrayName.length; row++) {
for(int col = 0; col < arrayName[row].length; col++) {
aString = " " + arrayName[row][col];
}
}
return aString;
}
最后一个,当我将数组(每个框)初始化为''(空格)时,我得到0000作为输出而不是[]。哦,这是一个char数组btw。请看看我的问题。提前谢谢。
答案 0 :(得分:4)
我认为你的意思是
aString += " " + arrayName[row][col];
实际上,你在每次迭代中都会覆盖字符串。
答案 1 :(得分:2)
for(int row = 0; row < arrayName.length; row++) {
for(int col = 0; col < arrayName[row].length; col++) {
aString += " " + arrayName[row][col];
}
aString += "\r\n";
}
如果您在网络表单上显示,则可以使用<br>
代替\r\n
。
答案 2 :(得分:0)
使用stringbuffer或stringbuilder在tostring方法中连接字符串对象 您的aString会在没有连接的情况下一次又一次地初始化 在这里使用stringbuffer.append,其中aString应该是String缓冲区中的str
EDIT1
public String toString() {
StringBuffer aString = new StringBuffer();
for(int row = 0; row < arrayName.length; row++) {
for(int col = 0; col < arrayName[row].length; col++) {
aString.append(" " + arrayName[row][col]);
}
}
return aString.toString();
}