JAVA字符串长度不足左右补0

本文参考自:http://www.51zdd.com/java_format_str_with_zero.html

今天碰到一简单的功能,就是把字符串格式化成9位,不足的前面补0。懒人就想一行代码解决这个问题,后来发现能一行代码补足倍数的,前面都是补的空格,而要想补0的,都是需要整数型。用到的函数是 String.format,可以格式化整形,字符串,日期等。

System.out.println(String.format(“%09d”, 123);
输出:000000123

System.out.println(String.format(“%9s”, “123″);
输出: 123

刚好我那字符串是可以转换成整型的,所以代码如下:
System.out.println(String.format(“%09d”, Long.parseLong(“123″)));
输出:000000123

摘下网上的字符串补0的两种方法,测试可用:

import java.text.NumberFormat;
 
public class test {
 
    public static void main(String[] args) {
        //待测试数据
        int i = 1;
        //得到一个NumberFormat的实例
        NumberFormat nf = NumberFormat.getInstance();
        //设置是否使用分组
        nf.setGroupingUsed(false);
        //设置最大整数位数
        nf.setMaximumIntegerDigits(4);
        //设置最小整数位数    
        nf.setMinimumIntegerDigits(4);
        //输出测试语句
        System.out.println(nf.format(i));
    }
}

 

public static String addZeroForNum(String str, int strLength) {
    int strLen = str.length();
    if (strLen < strLength) {
        while (strLen < strLength) {
            StringBuffer sb = new StringBuffer();
            sb.append("0").append(str);// 左补0
            // sb.append(str).append("0");//右补0
            str = sb.toString();
            strLen = str.length();
        }
    }

    return str;
}

 

你可能感兴趣的:(JAVA字符串长度不足左右补0)