Java格式,负值,零填充

时间:2012-09-03 18:51:42

标签: java string format

以下是http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

的引用
  

'd''\ u0054'将参数格式化为十进制整数。该   应用定位算法。

     

如果给出'0'标志且值为负,则在符号后面将出现零填充。

我感到很沮丧,试图学习这种格式化的东西,但是这个教程太混乱了。

String.format("%03d", int); 

我试图了解整个\ u0054应该去哪里,但我不知道,我必须遗漏一些非常明显的东西......

编辑:

我想要实现的目标: 正10:010 负10:-10 我想达到的负面结果:-010

3 个答案:

答案 0 :(得分:7)

\u0054d

你可以做到

((i < 0) ? "-" : "") + String.format("%03d", Math.abs(i)); 

答案 1 :(得分:5)

然后尝试String.format("% 4d", i)(%和4之间的空格);它使用4个位置,零填充并为正值留出额外空间,因此您得到“010”和“-010”。之后你可以trim()字符串去除初始空格(或做if (i>0) s=s.substring(1)之类的东西)。

答案 2 :(得分:0)

以下作品

public class MyProgram
{
    public static void main(String[] args)
    {
        int n = -13754;
        int p = 2234;
        String buffer = String.format("%08d", n);
        System.out.println(buffer);
        buffer = String.format("%08d", p);
        System.out.println(buffer);
    }
}

输出

-0013754
00002234

对于您的示例,“%03d”就是您要使用的。