为常见的是对数字进行右对齐输出,比如右对齐,左补0.例如:数字12,格式化为0012,数字123,格式化为0123.

下面是实现该需求的两种方法,利用了java本身的格式化功能。

 

package test;   
  
public class FormatTest   
{   
 
 
    public static void main(String[] args)   
    {   
        int number1 = 5;   
        int number2 = 0;   
        int number3 = -12;   
  
        System.out.println("\n------------------  方法 1  ------------\n");   
        java.text.DecimalFormat format = new java.text.DecimalFormat("0000");   
        System.out.println(format.format(number1));   
        System.out.println(format.format(number2));   
        System.out.println(format.format(number3));   
  
        System.out.println("\n------------------  方法 2  ------------\n");   
        // 0 代表前面补充0   
        // 4 代表长度为4   
        // d 代表参数为正数型   
        String str1 = String.format("%04d", number1);   
        String str2 = String.format("%04d", number2);   
        String str3 = String.format("%04d", number3);   
        System.out.println(str1);   
        System.out.println(str2);   
        System.out.println(str3);   
    }   
  
}

下面这段代码,可以处理字符串的右对齐输出,可以自定义补充的字符(不仅限于0),可以自定义补充后字符串的长度。

 

// c 要填充的字符   
    // l 填充后字符串的总长度   
    // string 要格式化的字符串   
    public static String flushLeft(char c, long l, String string)   
    {   
        String str = "";   
        long cl = 0;   
        String cs = "";   
        if (string.length() > l)   
            str = string;   
        else  
            for (int i = 0; i < l - string.length(); i++)   
                cs = cs + c;   
        str = string + cs;   
        return str;   
    }