如果长度不够长,如何用空格填充字符串?

时间:2016-07-19 04:56:59

标签: java randomaccessfile

我正在创建一个随机存取文件,用于存储玩家的名字,等级和技能,我正在制作它,这样如果你输入一个超过26的玩家名字,那么它会被缩减为26,如果它短于26,我想用空白填充它。

我想出了subString,以确保只选择前26个,但我想知道你们建议如果我没有任何价值,我会建议我有26个填充空白。这只是我的代码片段,如果您希望我添加更多代码,我会。

public static String PlayerNameMethod (RandomAccessFile store){
    try{
        String PlayerName = input.next();
        store.writeUTF(PlayerName);
        if (PlayerName.length()> 26){
            PlayerName.substring(0,26);
            System.out.print("The Player Name is" + PlayerName);
        }

        if (PlayerName.length()< 26){
            //PART I CANT FIGURE OUT
        }

3 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点 - 最直接的方法是在字符串足够长的时候添加空格的循环。

但是,一种代码非常短并且使用内置函数的方法是String.format函数:

PlayerName = String.format("%-26s", PlayerName);

请注意,您的其余代码中存在一些问题。这一行:

PlayerName.substring(0,26);

什么都不做。字符串是不可变的,这意味着更改字符串的函数始终返回新字符串 - 它们不会修改原始字符串。

这一行应该是:

PlayerName = PlayerName.substring(0,26);

答案 1 :(得分:1)

@Erwin提到的答案是最简洁的。 但是,如果您想自己动手,这就是您需要做的事情。

   if (PlayerName.length() < 26)
    {
        StringBuilder paddedName = new StringBuilder(PlayerName);
        for (int i = 0; i < 26 - PlayerName.length(); i++)
        {
            paddedName.append(" ");
        }
        PlayerName = paddedName.toString();
    }

注意:java约定规定您应该以小写字母开头的变量名称。在您的情况下playerName

答案 2 :(得分:0)

创建一个长度为= 26-PlayerName.length()的字符串,每个字符为空,并将其附加到PlayerName

相关问题