我在这里和这里都见过类似的问题。
但我不知道如何左垫字符串与零。
输入:“129018” 输出:“0000129018”
总输出长度应为10。
我在这里和这里都见过类似的问题。
但我不知道如何左垫字符串与零。
输入:“129018” 输出:“0000129018”
总输出长度应为10。
当前回答
如果你的字符串只包含数字,你可以让它成为一个整数,然后做填充:
String.format("%010d", Integer.parseInt(mystring));
如果没有,我想知道如何才能做到。
其他回答
使用谷歌番石榴:
Maven:
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<version>14.0.1</version>
</dependency>
示例代码:
Strings.padStart("129018", 10, '0') returns "0000129018"
你可以使用apache commons StringUtils
StringUtils.leftPad("129018", 10, "0");
https://commons.apache.org/proper/commons lang/javadocs/api - 2.6 - / - org/apache/commons/lang/stringutils.html # leftPad (% 20 int,以% 20字符)
String paddedString = org.apache.commons.lang.StringUtils.leftPad("129018", 10, "0")
第二个参数是期望的输出长度
"0"是填充字符
这是另一种方法:
int pad = 4;
char[] temp = (new String(new char[pad]) + "129018").toCharArray()
Arrays.fill(temp, 0, pad, '0');
System.out.println(temp)
检查我的代码,将工作的整数和字符串。
假设第一个数字是129018。我们要给它加上0所以最终字符串的长度是10。为此,您可以使用以下代码
int number=129018;
int requiredLengthAfterPadding=10;
String resultString=Integer.toString(number);
int inputStringLengh=resultString.length();
int diff=requiredLengthAfterPadding-inputStringLengh;
if(inputStringLengh<requiredLengthAfterPadding)
{
resultString=new String(new char[diff]).replace("\0", "0")+number;
}
System.out.println(resultString);