package com.ezubo.global.util;
import java.math.BigDecimal;
import java.text.DecimalFormat;
/**
* Created by yyy on 2015-12-28.
*/
public class FormatUtil {
public static final String RMB_FORMAT = "##,000.00";
/**
* num -- 数字
* length -- 补充位数
* @param num
* @param length
* @return
*/
public static String leftpad(int num , int length){
if((""+num).length() > length) throw new RuntimeException("length is not enough.");
String res = String.format("%0"+length+"d" , num);
return res;
}
//====================数字格式化=======================
/*主要用于补零或者补空串或者格式化数据
DecimalFormat的format用法
0 ----- 代表一个数字(包含0)
# ----- 代表一个数字,但不包含0
. ----- 代表小数的分隔符的占位符
, ----- 代表分组的分隔符的占位符
- ----- 缺省负数的前缀*/
//=====================数字格式化=======================
/**
* 将数字格式化成固定长度的字符串
* @param decimal
* @param format
* @return
*/
public static String leftpad(Long decimal ,String format){
DecimalFormat decimalFormat = new DecimalFormat(format);
return decimalFormat.format(decimal);
}
/**
* 将数字格式化成固定长度的字符串
* @param decimal
* @param format
* @return
*/
public static String leftpad(Integer decimal ,String format){
DecimalFormat decimalFormat = new DecimalFormat(format);
return decimalFormat.format(decimal);
}
/**
* 将数字格式化成固定长度的字符串
* @param decimal
* @param format
* @return
*/
public static String leftpad(BigDecimal decimal , String format){
if(decimal == null) decimal = BigDecimal.ZERO;
DecimalFormat decimalFormat = new DecimalFormat(format);
return decimalFormat.format(decimal);
}
public static void main(String[] args){
System.out.println(NettyUtil.leftpad(12 , 2));
System.out.println(NettyUtil.leftpad(12 , "00000000"));
System.out.println(NettyUtil.leftpad(new BigDecimal(12) , "00000000"));
System.out.println(NettyUtil.leftpad(1234567890l , NettyUtil.RMB_FORMAT));
}
}