我想把Swift中的Int转换成带前导零的String.例如,考虑这个代码:

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

目前的结果是:

1
2
3

但我希望它是:

01
02
03

在Swift标准库中是否有一种干净的方法来实现这一点?

推荐答案

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

import Foundation

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

输出:

01
02
03

这需要import Foundation,所以从技术上讲,它不是Swift语言的一部分,而是Foundation框架提供的一种能力.请注意,import UIKitimport Cocoa都包含Foundation,因此如果已经导入CocoaUIKit,则无需再次导入.


格式字符串可以指定多个项目的格式.例如,如果你试图将3小时157秒的时间格式化为03:15:07秒,你可以这样做:

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

输出:

03:15:07

Swift相关问答推荐

如何更新Square Order?

@ MainActor + Combine不一致的编译器错误

为什么ClosedRange<;Int&>包含的速度比预期慢340万倍?

SWIFT计划计时器方法在时间间隔后未被调用

如何使泡泡上的箭头直达封闭矩形

String.Index encodedOffset已弃用,但建议的替代方案不起作用

如何在应用程序区域永久更改 NSCursor?

SwiftUI,如何更改具有多个按钮和一个布尔条件的一个按钮标签

仅当 boolean 为真时才实现方法(application:didReceiveRemoteNotification)

macOS 的窗口框架中使用的真实类型和真实类型是什么?

MacOS KIND 是如何实现的

在 macOS (Swift) 上获取 BSD 驱动器名称的最佳方法是什么?

将阻塞函数集成到 Swift 异步中

Swift:连接两个数组而不重复共享后缀/前缀

组合 flatMap 不会返回预期的上下文结果类型

在运行时访问 UIView 宽度

Swift 动画 WithDuration 语法是什么?

Swift :如何在一组字符之后得到所有东西

如何在 Swift 中重写 setter

如何将 Int 拆分为其各个数字?