Ascii表空间

时间:2017-11-24 05:42:07

标签: java

我有一个ASCII表,我想把它放到我可以放置输入但不影响空格的地方

System.out.println("._________________________.");
    System.out.println("|" + playerOneName + "                         " + "|");
    System.out.println("|-------------------------|");
    System.out.println("|Wins                   "+ playOneWin + "|");
    System.out.println("|Losses                 " + playOneLoss + "|");
    System.out.println("|_________________________|");

我知道它对上下文没有意义但是如果我做一个像John这样的随机名称。这是输出

    System.out.println("._________________________.");
    System.out.println("|John                        |");
    System.out.println("|-------------------------|");
    System.out.println("|Wins                    12|");
    System.out.println("|Losses                  3|");
    System.out.println("|_________________________|");

忽略第二个例子中的System.out.println(),它只是设置结构。我的问题是如何获得|与其余部分和名称对齐,如果有意义的话,不要编辑空格

由于

1 个答案:

答案 0 :(得分:2)

所以你基本上想填充字符串。

如果字符串短于某个长度,则需要向其添加字符(向左或向右)以使其达到该长度。正确?

使用System.out.printf

System.out.printf("%-10s|", "John"); // padding to the right

那将输出

John      |

如果您希望长度不同,请将10更改为其他内容。

对于获胜和失败的数量,您可以将数字填入左侧:

int playOneWin = 12;
int losses = 3;
System.out.printf("|Wins%21s|%n", playOneWin); // note that the "-" is gone, signifying padding left
System.out.printf("|Losses%19s|", losses); // 19 is written here because "Losses" has 2 more letters than "Wins", 
                                           // so we pad the string for 2 fewer characters

输出:

|Wins                   12|
|Losses                  3|