用零填充字符串的更好方法[重复]
Posted
技术标签:
【中文标题】用零填充字符串的更好方法[重复]【英文标题】:A better way of left padding a string with zeroes [duplicate] 【发布时间】:2016-08-14 02:38:30 【问题描述】:这就是我用零填充字符串的方式:
String.format("%16s", cardTypeString.trim()).replace(' ', '0');
有没有更好的方法来做到这一点?我不喜欢.replace(' ', '0')
部分。
【问题讨论】:
【参考方案1】:// 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!
【讨论】:
【参考方案2】:你可以使用来自Apache Commons的StringUtils:
StringUtils.leftPad(cardTypeString, 16, '0');
【讨论】:
【参考方案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。
【讨论】:
以上是关于用零填充字符串的更好方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章