在我提出问题之前,我要感谢所有帮助我解决上一个问题的人。 Anywho,即使我把它放到一个toString方法,我当前也得到了内存偏移量。我已经阅读了大多数关于toString方法的问题并且有一些理解,我只是想确保我是否正确实现了这一点。如果您认为这是一个多余的问题,我理解。感谢您的帮助。
船舶类
import java.util.Scanner;
public class Ship{
int type;
public String [][] shipPiece = new String[11][11];
Scanner in = new Scanner(System.in);
//Coordinate xy = new Coordinate();
//private Coordinate[] bawdPiece = {new section()};
public Ship(){
}
public String[][] placeShip()
{
System.out.println();
for(int x = 1; x<10; x++)
{
for(int y = 1; y<10; y++)
{
shipPiece[x][y] = "0";
System.out.print("|" + shipPiece);
}
}
return shipPiece;
}
public String toString()
{
StringBuilder temp = new StringBuilder();
temp.append(shipPiece);
return temp.toString();
}
答案 0 :(得分:0)
如果我正确理解了这个问题,你是否试图将shipPiece的索引作为字符串?
如果是这种情况,请尝试String.ValueOf(index)
,你显然必须这样做两次,因为你有一个二维数组。
例如:
String s = String.ValueOf(xIndex) + "," + String.ValueOf(yIndex);
答案 1 :(得分:0)
public String toString()
{
StringBuilder temp = new StringBuilder();
for(int x = 0; x < 10; x++)
{
for(int y = 0; y < 10; y++)
{
temp.append(String.valueOf(shipPiece[x][y]);
}
temp.append("\n");
}
return temp.toString();
}
我想指出的另一件事是你的数组初始化。您使用11 x 11索引初始化它,但是您的循环仅向每行添加9个值并且列循环从1开始并在9结束。您可能希望将初始化修复为10 x 10并使循环从0开始。