日期:2014-05-20  浏览次数:20781 次

Java字符串补齐
有没有更简单快速的方法将字符串补齐,比如我计算一个字符串的长度,然后和默认长度进行比较,差多少就高位补齐,比如全部补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();
}

觉得上面的做法很别扭 有更简单的方法没。

------解决方案--------------------
一般而言不能再快了
------解决方案--------------------
更快的可能没有了 不过你可以试试org.apache.commons.lang.StringUtils这个类

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);
    }
}

------解决方案--------------------