数字格式化成以0开头的定长字符串

Posted chenss15060100790

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字格式化成以0开头的定长字符串相关的知识,希望对你有一定的参考价值。

简单写就
String.format("%04d", 3)

不过令我意外的是
StringBuilder +replace 效率居然更高


public class Test 
    public static String  format2(int shortval) 
        String formatted = Integer.toString(shortval);
        StringBuilder buf = new StringBuilder("0000");
        buf.replace(4 - formatted.length(), 4, formatted);
        return buf.toString();
    

    public static void main(String[] args) 
        String s;
        
            long start = System.nanoTime();
            int cnt = 100_0000;
            while (cnt-- > 0) 
                s = String.format("%04d", 3);
            
            long end = System.nanoTime();
            System.out.println(end - start);
        
        
            long start = System.nanoTime();
            int cnt = 100_0000;
            while (cnt-- > 0) 
                s = format2((short) 3);
            
            String a ="";
            long end = System.nanoTime();
            System.out.println(end - start);
        
    

 

以上是关于数字格式化成以0开头的定长字符串的主要内容,如果未能解决你的问题,请参考以下文章

常用的正则表达式大全(数字字符固定格式)

格式化字符串说明符

C# 怎样把 数字型的字符串 格式化成 两位小数形式的字符串?不足两位小数要补0

iOS 格式化字符串

电子表格数字式的小时化成时分秒格式

正则表达式 实现ipv4格式的判断