这就是我用零填充字符串的方法:
String.format("%16s", cardTypeString.trim()).replace(' ', '0');
有更好的方法吗?我不喜欢.replace(' ', '0')
部分。
答案 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!