在Java中排列输出
我正在编写一个21点程序,它可以保存用户信息,例如赢得的手数、玩过的手数、留给玩家的钱以及他们的姓名。输出应该是正确的,即使它们在变化。我目前的代码是:在Java中排列输出,java,output-formatting,Java,Output Formatting,我正在编写一个21点程序,它可以保存用户信息,例如赢得的手数、玩过的手数、留给玩家的钱以及他们的姓名。输出应该是正确的,即使它们在变化。我目前的代码是: System.out.format("%s \t \t \t %s %n", "Name:", playerName); System.out.format("%s \t \t %d %n", "Hands Played:", playerHands); System.out.format("%s \t \t %d %n
System.out.format("%s \t \t \t %s %n", "Name:", playerName);
System.out.format("%s \t \t %d %n", "Hands Played:", playerHands);
System.out.format("%s \t \t %d %n", "Hands Won:", playerWins);
System.out.format("%s \t \t \t %.2f %n", "Money:", playerMoney);
这句话在屏幕的中间是合理的,但是我已经没有其他的想法了。
附加问题:为什么第二个和第三个打印语句只需要2“\t”s?我认为这与前面字符串的长度有关,但有没有一个硬性的规则呢?这应该有帮助:
System.out.format("%15s %-15s %n", "Name:", playerName);
System.out.format("%15s %-15d %n", "Hands Played:", playerHands);
System.out.format("%15s %-15d %n", "Hands Won:", playerWins);
System.out.format("%15s %-15.2f %n", "Money:", playerMoney);
输出:
Name: Player 1
Hands Played: 10
Hands Won: 2
Money: 15.05
这将有助于:
System.out.format("%15s %-15s %n", "Name:", playerName);
System.out.format("%15s %-15d %n", "Hands Played:", playerHands);
System.out.format("%15s %-15d %n", "Hands Won:", playerWins);
System.out.format("%15s %-15.2f %n", "Money:", playerMoney);
输出:
Name: Player 1
Hands Played: 10
Hands Won: 2
Money: 15.05
不可能知道控制台的宽度,因此您只能针对一个特定宽度制定解决方案。1。开始时打印的%s字符串可能会将您推过选项卡边界。2.如果您的“控制台”支持可变宽度字体(任何现代图形用户界面),那么这也会使您陷入困境。不可能知道控制台的宽度,因此您只能针对一种特定宽度制定解决方案。1。开始时打印的%s字符串可能会将您推过选项卡边界。2.如果您的“控制台”支持可变宽度字体(任何现代GUI),那么这也会让您陷入困境。这解决了我的右对齐问题,但现在又增加了一个问题,即名称、手牌、手牌赢了和钱现在都不是左对齐的,对不起,我应该更清楚。没关系,我想我明白了。如果我做了“%15-s”,这能解决我的问题吗?我试过了,它似乎起了作用。这解决了我的右对齐问题,但现在又增加了一个问题,名字、手牌、手牌赢了,钱现在不是左对齐的,对不起,我应该更清楚。没关系,我想我明白了。如果我做了“%15-s”,这能解决我的问题吗?我试过了,似乎很管用。