Java 如何将其格式化为字符串

Java 如何将其格式化为字符串,java,Java,我有这个 public String toString() { String s = ""; for (int r = 0; r != 7 ; r++) { for (int c = 0; c != 7 ; c++) { s += String.format("%02d " ,board[r][c]); } } return s; } 我需要它像这样回来 public String

我有这个

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
我需要它像这样回来

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
01 04 39 20 53 06 37 22
40 19 02 05 38 21 52 07
0346610057542336
18 41 56 49 60 00 08 51
47 14 45 58 55 50 35 24
42 17 48 27 00 59 32 09
13 28 15 44 11 30 25 34
16 43 12 29 26 33 10 31

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
我该怎么做呢?

小提示:使用。在循环中反复添加
String
s会让每个体面的程序员畏缩不前

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
private static final String NEW_LINE = System.getProperty("line.separator");

public String toString()
{
    StringBuilder s = new StringBuilder();

    for (int r = 0; r != 7 ; r++)
    {
         for (int c = 0; c != 7 ; c++) 
         {
               s.append( String.format("%02d ", board[r][c] );
         }

         // On each outer-loop iteration, add a platform 
         // independent line separator (e.g. on Linux, it's "\n")
         s.append( NEW_LINE );
    }

    return s.toString();
}
编辑:根据@Diego C Nascimento的建议,新的行分隔符应该是一个类常量

小提示:使用。在循环中反复添加
String
s会让每个体面的程序员畏缩不前

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
private static final String NEW_LINE = System.getProperty("line.separator");

public String toString()
{
    StringBuilder s = new StringBuilder();

    for (int r = 0; r != 7 ; r++)
    {
         for (int c = 0; c != 7 ; c++) 
         {
               s.append( String.format("%02d ", board[r][c] );
         }

         // On each outer-loop iteration, add a platform 
         // independent line separator (e.g. on Linux, it's "\n")
         s.append( NEW_LINE );
    }

    return s.toString();
}

编辑:根据@Diego C Nascimento的建议,新的行分隔符应该是一个类常量

您添加了一行空格,但从未添加新行字符

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
           s += String.format("%02d " ,board[r][c]);
        }
        s += String.format("%n");
    }
        return s;
}

%n是与平台无关的新行字符

您添加了一行空格,但从未添加新行字符

public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}
public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
           s += String.format("%02d " ,board[r][c]);
        }
        s += String.format("%n");
    }
        return s;
}


%n是独立于平台的新行字符

你尝试过什么吗?你能解释一下你到目前为止尝试过什么吗?是的,我尝试过添加\n但它会在每个人之后跳过。我可以给你一个提示:你需要在板的每一行之后换行。你可能需要类似于
s+=System.lineSeparator()的东西在内部循环之后…你尝试过什么吗?你能解释一下到目前为止你尝试过什么吗?是的,我尝试过添加\n但在每个人之后它都会跳过。我可以给你一个提示:你需要在电路板的每行之后换行。你可能需要像
s+=System.lineSeparator()这样的东西在内部循环之后…只是一个提示:在变量的方法开始处获取行分隔符,然后使用它,避免调用System.getProperty(“line.separator”),这会更有趣。为什么不使用
System.lineSeparator()
?@randomstring可以任意工作。有趣的是,使用
getProperty
可以破解系统行分隔符,返回其他内容。但这只是愚蠢和离题。只是一个提示:在变量的方法开始处获取行分隔符,然后使用它,避免调用System.getProperty(“line.separator”),这会更有趣。为什么不使用
System.lineSeparator()
?@randomstring可以任意工作。有趣的是,使用
getProperty
可以破解系统行分隔符,返回其他内容。但那只是愚蠢和离题。我错了,%n是独立于平台的新行字符?!因此,如果在linux上使用“\n”运行,这将是独立的,并且是适用于Windows的正确新行吗?它不应该依赖于plataform,也不应该只是plataform新行字符!?'n'行分隔符结果是平台特定行分隔符Orry我可以更好地表述,它获得平台新行。所以它的独立于平台的代码我错了,%n是独立于平台的新行字符吗?!因此,如果在linux上使用“\n”运行,这将是独立的,并且是适用于Windows的正确新行吗?它不应该依赖于plataform,也不应该只是plataform新行字符!?'n'行分隔符结果是平台特定行分隔符Orry我可以更好地表述,它获得平台新行。因此,它的平台无关代码
public String toString()
{
    String s = "";
    for (int r = 0; r != 7 ; r++)
    {
        for (int c = 0; c != 7 ; c++) 
        {
            s += String.format("%02d " ,board[r][c]);
        }
    }
    return s;
}