一尘不染

Swift中Int的前导零

swift

我想将IntSwift中的a 转换为String前导零的a。例如,考虑以下代码:

for myInt in 1 ... 3 {
    print("\(myInt)")
}

当前的结果是:

1
2
3

但我希望它是:

01
02
03

Swift标准库中是否有一种干净的方法可以做到这一点?


阅读 236

收藏
2020-07-07

共1个答案

一尘不染

假设您希望字段长度为2,且前导零为零,则可以这样做:

import Foundation

for myInt in 1 ... 3 {
    print(String(format: "%02d", myInt))
}

输出:

01
02
03

这需要import Foundation因此从技术上讲不是斯威夫特语言的一部分,而是由提供的功能Foundation框架。请注意这两个import UIKitimport Cocoa包括Foundation因此没有必要再次导入它,如果你已导入CocoaUIKit


格式字符串可以指定多个项目的格式。例如,如果您尝试将3小时,15分钟和7秒格式化为以下格式,则03:15:07可以这样做:

let hours = 3
let minutes = 15
let seconds = 7
print(String(format: "%02d:%02d:%02d", hours, minutes, seconds))

输出:

03:15:07
2020-07-07