用零填充字符串

这个问题在这里已经有了答案:

  • 我如何在Java中填充字符串? 26个答案

  • 如果你的字符串只包含数字,你可以使它成为一个整数,然后做填充:

    String.format("%010d", Integer.parseInt(mystring));
    

    如果不是,我想知道它是如何做到的。


    org.apache.commons.lang.StringUtils.leftPad("129018", 10, "0")
    

    第二个参数是所需的输出长度

    “0”是填充字符


    这将填充左边任何字符串的总宽度为10,而不必担心解析错误:

    String unpadded = "12345"; 
    String padded = "##########".substring(unpadded.length()) + unpadded;
    
    //unpadded is "12345"
    //padded   is "#####12345"
    

    如果你想正确填写:

    String unpadded = "12345"; 
    String padded = unpadded + "##########".substring(unpadded.length());
    
    //unpadded is "12345"
    //padded   is "12345#####"  
    

    你可以用任何你想要填充的字符替换“#”字符,重复你希望字符串总宽度的次数。 例如,如果要向左侧添加零,以便整个字符串的长度为15个字符:

    String unpadded = "12345"; 
    String padded = "000000000000000".substring(unpadded.length()) + unpadded;
    
    //unpadded is "12345"
    //padded   is "000000000012345"  
    

    这比khachik的答案的好处是,这不会使用Integer.parseInt,它可以抛出一个异常(例如,如果你想打的数字太大,如12147483647)。 缺点是如果你填充的内容已经是一个int,那么你必须将它转换为一个String并返回,这是不可取的。

    所以,如果你确信它是一个整数,khachik的答案很好。 如果不是,那么这是一个可能的策略。

    链接地址: http://www.djcxy.com/p/46089.html

    上一篇: Left padding a String with Zeros

    下一篇: How to convert List<Integer> to int[] in Java?