Java 使用System.out.printf时出错

Java 使用System.out.printf时出错,java,compiler-errors,Java,Compiler Errors,我得到这个错误:“这个方法必须返回字符串类型的结果”对于这段代码。另外,我还没有找到太多关于.printf方法的内容(我刚从课本上得到它,因为我需要将它的格式与它们在那里的格式完全相同)。这个方法被删除了吗 public String toString() { System.out.println("Shown are the prices for " + "each seat. A 0 indicates the seat is " +

我得到这个错误:“这个方法必须返回字符串类型的结果”对于这段代码。另外,我还没有找到太多关于.printf方法的内容(我刚从课本上得到它,因为我需要将它的格式与它们在那里的格式完全相同)。这个方法被删除了吗

public String toString()
{
    System.out.println("Shown are the prices for " +
            "each seat. A 0 indicates the seat is " +
            "unavailable.");
    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            System.out.printf("%8d", seatArray[i][j]);
        }
    }
}
公共字符串toString()
{
System.out.println(“显示的是”+
“每个座位。0表示该座位”+
“不可用。”);
对于(int i=0;i<9;i++)
{
对于(int j=0;j<10;j++)
{
System.out.printf(“%8d”,seatArray[i][j]);
}
}
}
此方法的
return
类型是
字符串
,但您根本没有return语句。您需要有一个return语句,它从这个方法返回一个字符串。使用
系统.out.printf
没有问题

public String toString()
{
    System.out.println("Shown are the prices for " +
            "each seat. A 0 indicates the seat is " +
            "unavailable.");
    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            System.out.printf("%8d", seatArray[i][j]);
        }
    }
    return someString; // return statement is required as the method return type is String and not void
}

是的,无论返回类型是
void
还是
String
,您都可以按照自己的方式打印数组。只是如果它是
字符串
返回类型,则必须返回
字符串
,以及在方法中执行的打印。

您需要根据方法签名返回字符串。试试这个

public String toString()
{
    StringBuilder sb = new StringBuilder()'
    sb.append("Shown are the prices for " +
           "each seat. A 0 indicates the seat is " +
           "unavailable.\n");

    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            sb.append(String.format("%8d\n", seatArray[i][j]));
        }
    }

    return sb.toString();
}
公共字符串toString()
{
StringBuilder sb=新的StringBuilder()
sb.追加(“显示的是价格”+
“每个座位。0表示该座位”+
“不可用。\n”);
对于(int i=0;i<9;i++)
{
对于(int j=0;j<10;j++)
{
sb.append(String.format(“%8d\n”,seatArray[i][j]);
}
}
使某人返回字符串();
}

否,未删除
System.out
java.io.PrintStream

的一个实例,错误说明了一切。再次感谢你,RJ。那么,有没有一种方法可以用这种方法打印出来?我将其切换为public void,但随后它出现了以下错误:“返回类型与Object.toString()不兼容”@user1953907如果您使用的是void方法,请不要将其命名为
toString()
,将其命名为
print()
display()
@user1953907-我编辑了我的答案以回答您的疑问。如果您需要更清楚的说明,请告诉我!:)
public void printArray() // Something like this
public String toString()
{
    StringBuilder sb = new StringBuilder()'
    sb.append("Shown are the prices for " +
           "each seat. A 0 indicates the seat is " +
           "unavailable.\n");

    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            sb.append(String.format("%8d\n", seatArray[i][j]));
        }
    }

    return sb.toString();
}