2017-04-09 35 views
-1

为了学习Java编程的自定义格式,我想通过阅读文档和示例代码可以把我的小想法变成一个程序。 通过字符串格式化,数字格式化,Spring的数字格式化等自然数

走了,但卡住了下面的步骤。请引导。

输入:(TotalDigits必需,NaturalNumberToBeFormatted)

靶向来实现:

Input (4,1)  Output String : 0001, 
Input (3,20)  Output String : 020, 
Input (6,12)  Output String : 000012, 
Input (6,179) Output String : 000179, 
Input (2, 19) Output String : 19, 
+0

@Andreas非常感谢你,先生。 – Optimight

回答

3

可以使用String.format()具有动态创建的格式字符串,例如输入3,20应该成为String.format("%03d", 20)

如果您更喜欢使用NumberFormat,你可以打电话给setMinimumIntegerDigits()获得期望的结果。根据地区不同,你可能还需要调用setGroupingUsed(false),所以不会增加千分隔符。

下面是示例代码来展示两个:

public static void main(String[] args) { 
    test(4, 1); // expected: 0001 
    test(3, 20); // expected: 020 
    test(6, 12); // expected: 000012 
    test(6, 179); // expected: 000179 
    test(2, 19); // expected: 19 
} 
private static void test(int len, int value) { 
    String s1 = String.format("%0" + len + "d", value); 

    NumberFormat fmt = NumberFormat.getIntegerInstance(); 
    fmt.setMinimumIntegerDigits(len); 
    fmt.setGroupingUsed(false); 
    String s2 = fmt.format(value); 

    System.out.printf("%-10s%s%n", s1, s2); 
} 

输出

0001  0001 
020  020 
000012 000012 
000179 000179 
19  19