这是我用来检查计算的一段代码,我只是将这些值写到 Xcode 的控制台中。每个数组都使用如下所示的值进行声明。
var water_deficit: [Int] = []
该程序计算缺水值并将它们附加到此列表中(计算未显示)
let months = ["January","Feburary","March","April","May","June","July","August","September","October","November","December"]
let rainfall = [38,94,142,149,236,305,202,82,139,222,178,103]
let raindays = [3,6,8,7,12,16,10,8,12,14,11,7]
for i in 0...11 {
println("\(months[i]) \t \(rainfall[i]) \t \(raindays[i]) \t \(water_deficit[i])")
}
输出如控制台所示:
Month Rainfall Raindays Water Deficit
January 38 3 38
Feburary 94 6 -18
March 142 8 -8
April 149 7 -1
May 236 12 116
June 305 16 301
July 202 10 202
August 82 8 82
September 139 12 101
October 222 14 203
November 178 11 208
December 103 7 103
如您所见,由于单词/数字的长度不同,因此列发生了偏移。我需要做什么来生成特定宽度的列以避免这个问题?
最佳答案
试试这个:
for i in 0...11 {
let month = (months[i] as NSString).UTF8String
println(String(format:"%-10s %10d %10d %10d", month,
rainfall[i], raindays[i], water_deficit[i]))
}
有关 un 格式和格式说明符的详细信息,请参阅 here 和 here 。
在
let month = (months[i] as NSString).UTF8String
中,我正在应用 conversion from String to C String :在 C 字符串的格式说明符中指定长度非常容易,但我不知道如何为字符串执行此操作(我猜这是不可能的)。关于xcode - 生成具有等宽列的表格(在 Xcode 的控制台上查看),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31610989/