具有一定数量空格的java格式

zlhcx6iw  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(351)

我该如何格式化一组空间,使结果看起来像这样?尝试获取等级、计数和%输出之间的确切间距类型。计数列应与字母t匹配。一个我特别困惑的是%由于压痕的差异取决于数字;e、 g.如果是100.00,则1应与%对齐,10的倍数即10-99.00应为%后的1个空格,0.00应为%后的2个空格。
提前谢谢!

  • 等级计数%

  • 华氏0.00度
  • 第120页
  • 240.00加元
  • d 0.00美元
  • 高清2 40.00
35g0bw71

35g0bw711#

你要找的是所谓的“固定列宽”格式。最简单的方法是使用 printf 方法。在你的情况下,你应该这样做:

System.out.println("Grade Count %");
    System.out.println("----- ----- ------");
    for (Grade g : grades) {
        System.out.printf("%-5s %5d %6.2f%n", 
            g.getGrade(), g.getCount(), g.getPercent());
    }

第一个论点 printf 是一个格式字符串,包括固定文本(这里只是一些空格)和以 % 以字母结尾;其余参数是要格式化的数据。下面是本例中格式字符串的简要分解: %-5sg.getGrade() 论证;这个 5 表示5列的固定字段宽度 - 意思是左对齐 s 意味着我们正在格式化 String 论点 %5dg.getCount() 论证;这个 d 意味着我们正在格式化一个十进制整数( int , long ,或 BigDecimal )号码, 5 是字段宽度,并且缺少 - 暗示正确的理由; %6.2fg.getPercent() 论证;这个 f 意味着我们正在格式化一个浮点( float , double 或者 BigDecimal )号码, 6 是整个字段宽度, .2 表示小数点后有两位数字,没有 - 意思是正确的辩护。
有关更完整的讨论,请阅读格式字符串。

相关问题