我有一个10位数的字符串变量,如果长度小于10,我需要在变量前面添加'0'。例如,如果字符串为9909909,则应返回0009909909。如何在Java中实现?
我有一个10位数的字符串变量,如果长度小于10,我需要在变量前面添加'0'。例如,如果字符串为9909909,则应返回0009909909。如何在Java中实现?
StringUtils
的leftPad
函数。StringUtils.leftPad(myString, 10,"0");
尝试使用 Apache StringUtils 类。
import org.apache.commons.lang.StringUtils;
...
String seqNumber = "123"
int seqNumberLength = 10;
String result = StringUtils.leftPad(seqNumber, seqNumberLength,"0")
结果为0000000123
有几种方法可以做到这一点。您可以创建单元测试来测试这些方法的性能。需要自己测试:我是在没有任何编译的情况下编写的:
Use the Apache StringUtils package;
StringUtils.leftPad(yourString, 10, "0");
A trick to avoid a for/while statement:
String newString = "0000000000".concat(yourString);
newString = newString.substring(newString.length() - 10);
A trick using replace:
String newString = String.format("%10s", youString).replace(" ", "0");
Using a classic while with StringBuilder:
StringBuilder sb = new StringBuilder(yourString);
int charsToGo = 10 - sb.length();
while(charsToGo > 0) {
sb.insert(0, '0');
charsToGo--;
}
System.out.println("Number: " + String.format("%010d", 1));
Integer.parseInt()
进行更新,那么这是一个很好的回应。 - Duncan JonesGoogle Guava 提供了Strings.padStart()
方法来实现这个目的:
返回一个字符串,长度至少为minLength,该字符串由string前置padChar复制所需次数组成,以达到该长度。例如,
padStart("7", 3, '0') 返回 "007"
padStart("2010", 3, '0') 返回 "2010"
希望这能帮到您!
这将使用任意填充字符处理任意字符串
public static String lpad(String s, int desiredLength, char padChar) {
return Character.toString(padChar)
.repeat(Math.max(0, desiredLength - s.length()))
+ s;
}
这将接受一个数字,整数,长整型,大整数
String.format("%032d", number); // 0-padded to 32 characters
但是如果你来这里处理消息摘要哈希值
byte[] digestBytes = messageDigest.digest();
String.format("%032X", new BigInteger(1, digestBytes));
int value = 5;
String strValue = "" + value;
while (strValue.length() < 10) {
strValue = "0" + strValue;
}
// strValue now equals "0000000005"
value
替换为实际数字10
替换为限制值(如果是固定的限制,可以考虑使用final
变量)StringBuilder
。 - Brian Roachint zeroesNeeded = 10 - myString.length();
while(zeroesNeeded > 0)
{
myString = "0" + myString;
zeroesNeeded--;
}
for (int i=0; i<(10-str.length); i++) {
str = "0" + str;
}