0

我制作了一个程序,应该在行尾输出 2 个字符串列表(介于 2 和 5 之间),我想在括号中打印一个 int。

我在正确证明 int 和括号时遇到了麻烦。

所有 printf 格式都无助于移动 int 及其周围的括号!

while (dealerPoints < 17 && playerBust == false) {
    System.out.printf("\nDealer has less than 17. He hits...\n");       
    int nextDealerCard = dealCard();
    dealerPoints += cardValue(nextDealerCard);
    dealerHand += faceCard(nextDealerCard);                             
    System.out.printf("Dealer: %s\t[%d]\n", dealerHand, dealerPoints);              
    System.out.printf("Player: %s\t[%d]\n", playerHand,  playerPoints);
}

当一行有 4 个字符串而另一行只有 2 个时,int 和括号彼此不对齐(4 个字符串之后的那个,被标记太远)

4

2 回答 2

0
System.out.printf("Dealer: %s\t[%10d]\n", "lala", 22222);
System.out.printf("Player: %s\t[%10d]\n", "hoho", 33);

Outputs:

Dealer: lala    [     22222]
Player: hoho    [        33]

is this what you want?

于 2013-10-25T15:50:48.323 回答
0

如果您想正确证明,您可以 - 将输出作为 CSV 写入文件并在类似 excel 的程序中打开 - 创建一个实用程序类,使任何输入字符串具有恒定长度:

public static String fixedCharCount( String input, int length ) {
    int spacesToAdd = length - input.lengh();
    StringBuffer buff = new StringBuffer(input);
    for( int i=0; i<spacesToAdd; i++) {
        buff.append(" ");
    }
    return buff.toString();
}

您还可以在显示之前循环所有数据以查看表中最长的字符串并调整长度(代码不完整:您必须检查“spacesToAdd”是否为正。

于 2013-10-25T16:03:15.830 回答