使用Javas System.out.format来对齐整数值

时间:2011-11-21 16:44:14

标签: java string-formatting

我正在尝试生成右对齐数字,看起来有点像这样:

  12345
   2345

但我显然不懂语法。我一直在努力关注these instructions。并提出以下尝试(它是整数所以d,我想要宽度7和0小数):

public class test {

    public static void main( String[] args ) {
        System.out.format("%7.0d%n", 12345);
        System.out.format("%7.0d%n",  2345);
    }
}

但无论我做什么,我似乎都以IllegalFormatPrecisionException结束。有没有办法使用此工具执行此操作?如果不是,你会怎么做呢?

4 个答案:

答案 0 :(得分:3)

您可以这样做:

public class Test {
    public static void main( String[] args ) {
        System.out.format("%7d%n", 12345);
        System.out.format("%7d%n",  2345);
    }
}

本质上,这段代码要求Java用空格填充字符串,以便输出正好是7个字符。

答案 1 :(得分:1)

这样做:

public class test {

    public static void main( String[] args ) {
        System.out.format("%7d%n", 12345);
        System.out.format("%7d%n",  2345);
    }
}

答案 2 :(得分:1)

在链接页面中显示:

System.out.format("%,8d%n", n); // --> " 461,012"

您可以省略逗号,并将8更改为7

答案 3 :(得分:0)

转换器%d用于整数,%f用于浮点数。 “%7.0d%n”与float一起使用(即,%7.0f%n),“%7d%n”用于整数表示。这是IllegalFormatPrecisionException异常的原因。

参考链接http://docs.oracle.com/javase/tutorial/java/data/numberformat.html