用零填充字符串的更好方法

时间:2016-04-21 05:26:32

标签: java string

这就是我用零填充字符串的方法:

String.format("%16s", cardTypeString.trim()).replace(' ', '0');

有更好的方法吗?我不喜欢.replace(' ', '0')部分。

3 个答案:

答案 0 :(得分:4)

您可以使用Apache Commons中的StringUtils:

StringUtils.leftPad(cardTypeString, 16, '0');

答案 1 :(得分:3)

实施您自己的PadLeft

public static String padLeft(String value, int width, char pad) {
    if (value.length() >= width)
        return value;
    char[] buf = new char[width];
    int padLen = width - value.length();
    Arrays.fill(buf, 0, padLen, pad);
    value.getChars(0, value.length(), buf, padLen);
    return new String(buf);
}

请参阅IDEONE demo

答案 2 :(得分:3)

// Pad with zeros and a width of 10 chars.
String.format("%1$010d", 245)

有关详细信息,请参阅https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html

对不起。我的错。这只适用于int,而不适用于String!