Java格式化数字——右对齐,左补0

 我们在做数据处理的时候,根据具体要求,可能需要对某些数据,比如数字、字符串,进行格式化输出。其中较为常见的是对数字进行右对齐输出,比如右对齐,左补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;    

    }

  
### Java `printf` 函数概述 Java 提供了 `System.out.printf()` 方法用于格式化输出,该方法允许使用特定的格式说明符来控制输出的内容和形式[^1]。 ### 基本语法结构 基本语法如下: ```java System.out.printf(format, arguments...); ``` 其中 `format` 是字符串模板,包含了普通字符以及特殊格式化的占位符;`arguments` 则是要插入到这些占位处的实际值。每个占位符由百分号 `%` 开始,后面跟着一个或多个标志、宽度、精度等修饰符,最后是一个转换字符指定数据类型的表示方式[^2]。 ### 格式化整数输出 对于整型数值可以采用不同的基数(十进制、八进制、十六进制)进行显示: ```java int decimalValue = 42; int octalValue = 052; // Octal representation of 42 int hexValue = 0x2A; // Hexadecimal representation of 42 // 输出不同进制下的相同数字 System.out.printf("Decimal: %d\n", decimalValue); // 十进制输出 System.out.printf("Octal: %o\n", octalValue); // 八进制输出 System.out.printf("Hexadecimal: %X\n", hexValue); // 大写十六进制输出 ``` 上述代码会依次打印出三个不同进制下相同的数值。 ### 浮点数格式化 浮点数可以通过设置小数点后的有效位数来进行精确度控制: ```java double piApproximation = 3.14159; // 控制保留两位小数 System.out.printf("%.2f\n", piApproximation); // 科学计数法表示并保持四位有效数字 System.out.printf("%e\n", piApproximation); ``` 这里展示了两种常见的浮点数呈现方式——固定点记法与科学记数法,并指定了各自的精度要求。 ### 字符串充与对齐 当处理文本时,有时希望确保字段具有固定的长度或者按照某种方向排列: ```java String shortText = "Hi"; String longText = "Hello World!"; // 右侧补直到总宽达到10个字符 System.out.printf("|%010s|\n", shortText); // 居中对齐于宽度为20的空间内 System.out.printf("|%-20s|\n|%^20s|\n|%20s|\n", longText, longText, longText); ``` 此部分介绍了如何利用定界符 `-`, `^` 和空白来调整最终渲染效果的位置属性[^3]。 ### 组合多种类型的数据一起输出 实际应用中往往需要一次性组合不同类型的信息共同展现给用户查看: ```java String name = "Alice"; int age = 27; double height = 1.68; // 同一语句里混合输出各种变量 System.out.printf("Name:%s Age:%d Height:%.2fm\n", name, age, height); ``` 这段程序片段综合运用了前面提到的知识点,在单行命令之中实现了多类别资料的同时表述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值