下面是字符串,例如:

"Apple"

我想加零来填充8个字符:

"000Apple"

我该怎么做呢?


当前回答

以防你不得不在没有库的帮助下做这件事:

("00000000" + "Apple").substring("Apple".length())

(工作,只要你的字符串不超过8个字符。)

其他回答

 StringUtils.leftPad(yourString, 8, '0');

这来自commons-lang。看到javadoc

你可以用这个:

org.apache.commons.lang.StringUtils.leftPad("Apple", 8, "0")

我喜欢用零填充字符串的解决方案

String.format("%1$" + length + "s", inputString).replace(' ', '0');

with length = "8" and inputString = "Apple"

可以更快,然后克里斯勒彻回答时,大部分的字符串恰好有8个字符

int length = in.length();
return length == 8 ? in : ("00000000" + in).substring(length);

在我的情况下,我的机器快了1/8。

下面是我用于预填充字符串的简单的无api“可读脚本”版本。(简单,可读,可调)。

while(str.length() < desired_length)
  str = '0'+str;