这是我用来检查计算的一段代码,我只是将这些值写到 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 格式和格式说明符的详细信息,请参阅 herehere

let month = (months[i] as NSString).UTF8String 中,我正在应用 conversion from String to C String :在 C 字符串的格式说明符中指定长度非常容易,但我不知道如何为字符串执行此操作(我猜这是不可能的)。

关于xcode - 生成具有等宽列的表格(在 Xcode 的控制台上查看),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31610989/

10-10 21:03
查看更多