Java字符串补齐,该如何解决
Java字符串补齐
有没有更简单快速的方法将字符串补齐,比如我计算一个字符串的长度,然后和默认长度进行比较,差多少就高位补齐,比如全部补0.有更快的方法吗?除了循环。
觉得上面的做法很别扭 有更简单的方法没。
------解决方案--------------------
一般而言不能再快了
------解决方案--------------------
更快的可能没有了 不过你可以试试org.apache.commons.lang.StringUtils这个类
结果就是0003123123
------解决方案--------------------
2楼无疑是最佳方法,但是如果你只想用jdk里的api的话,我有个方法:
------解决方案--------------------
有没有更简单快速的方法将字符串补齐,比如我计算一个字符串的长度,然后和默认长度进行比较,差多少就高位补齐,比如全部补0.有更快的方法吗?除了循环。
public String transeferStr(String orgin)
{
int poslength = 30;
int length = orgin.length();
int remaining = poslength - length;
if(remaining > 0)
{
StringBuilder sb = new StringBuilder();
for(int i = 0;i < remaining ;i++)
{
sb .append(0);
}
sb.append(orgin);
return sb.toString();
}
return orgin.toString();
}
觉得上面的做法很别扭 有更简单的方法没。
------解决方案--------------------
一般而言不能再快了
------解决方案--------------------
String test ="3123123";
String value = StringUtils.leftPad(test, 10, "0");
ystem.out.println(value);
结果就是0003123123
------解决方案--------------------
2楼无疑是最佳方法,但是如果你只想用jdk里的api的话,我有个方法:
package testPackage;
public class StringTest {
public static void main(String[] args) {
//假设必须15位长
int fullLength = 15;
//假设输入123456
StringBuilder input = new StringBuilder("123456");
//预先定义一个15位0
StringBuilder zero = new StringBuilder("000000000000000");
String result = zero.substring(0, zero.length() - input.length()) + input;
System.out.println(result);
}
}
------解决方案--------------------