Scala按顺序获取输出

时间:2015-06-28 21:29:17

标签: scala dynamic whitespace println

所以当我对我的数据进行一些查询时,这是一个代码输出:

Quartal    Cooperation    Sponsoring        Fees
2014/2    52.878.990,22    1.347.863,90    147.400.000,00
2013/1    41.915.908,42    18.867.625,26    153.753.810,00
2013/2    58.940.141,17    9.196.517,72    153.855.201,00
2014/1    39.257.778,34    17.836.682,47    147.269.362,00
Total:    192.992.818,15    47.248.689,35    602.278.373,00

你可以看到下一行中的数字不会以很好的方式打印出来......所以我希望这些行在打印出来时总是会被格式化:

Quarter     Cooperation      Sponsoring            Fees
2014/2    52.728.402,92    1.347.863,90  147.400.000,00
2014/3    37.136.924,43    8.270.494,07  147.800.000,00
2014/4    63.044.689,86    1.318.163,94  146.900.000,00
Total    152.910.017,21   10.936.521,91  442.100.000,00

看到区别?所以我知道我必须采用前一个的长度()和类似的东西,但我不知道究竟是怎么回事?

代码段对于print语句如下所示:

    println("%s    %s    %s        %s".format("Quartal","Cooperation","Sponsoring","Fees"))
    println(s"Total:    %,.2f    %,.2f    %,.2f".format(totalMedKF2.sum,totalMedKF4.sum,totalMedKF31.sum))

1 个答案:

答案 0 :(得分:3)

可能你想要这个:

println("%-10s %16s %16s %16s".format("Quartal","Cooperation","Sponsoring","Fees"))
println(s"Total:     %,16.2f %,16.2f %,16.2f".format(totalMedKF2.sum,totalMedKF4.sum,totalMedKF31.sum))

那里的数字(-10,16)用于告诉格式化程序应该为该项目给出的最小空间量。负数表示"左对齐&#34 ;;正数表示"右对齐"。

可在此处找到更多信息:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html