Java格式,负值,零填充

Der*_*gon 3 java string format

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

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

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

我感到很沮丧,试图学习这种格式化的东西,但那个教程只是如此凌乱和凌乱.

String.format("%03d", int); 
Run Code Online (Sandbox Code Playgroud)

我试图了解这整个应该去哪里,但我不知道,我一定要错过一些非常明显的东西......

编辑:

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

Pet*_*rey 7

\u0054d

你可以做

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

  • @Deragon保持一致性的接近应该是`"%+ 04d"`这将产生`"+010"`和`"-010"`. (3认同)

Cho*_*hos 5

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