2015-06-28 42 views
1

所以这是当我做我的一些数据的查询代码输出:斯卡拉得到输出为了

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 

看到区别?所以我知道我必须采取前一个的长度()和这样的东西,但我不知道到底是什么?

代码片段看起来是这样的打印语句:

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

一旦你得到的格式制定出来的,它可能是更清晰机智的“F”内插(其中,表达式可以跟随格式规范 - 请参阅http ://docs.scala-lang.org/overviews/core/string-interpolation.html)编辑:不知道你为什么使用s插值器,因为你没有做替换 –

回答

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)是用来告诉格式化的该项目应该提供的最小空间量。负数表示“左对齐”;正数表示“右对齐”。

地段的详细信息可以在这里找到:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html