Swift中Int的前导零

Swift中Int的前导零

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


for myInt in 1 ... 3 {

    print("\(myInt)")

}

目前的结果是:


1

2

3

但我希望它是:


01

02

03

在Swift标准库中有没有一种干净的方法呢?


喵喔喔
浏览 747回答 3
3回答

慕斯王

假设你想要一个带有前导零的字段长度为2,你可以这样做:import Foundationfor myInt in 1 ... 3 {     print(String(format: "%02d", myInt))}输出:01 02 03这在import Foundation技术上要求它不是Swift语言的一部分,而是Foundation框架提供的功能。请注意这两个import UIKit和import Cocoa包括Foundation所以它是没有必要的,如果你已导入再次导入Cocoa或UIKit。格式字符串可以指定多个项目的格式。例如,如果您尝试格式化3小时,15分钟和7秒,03:15:07您可以这样做:let hours = 3let minutes = 15let seconds = 7print(String(format: "%02d:%02d:%02d", hours, minutes, seconds))输出:03:15:07

凤凰求蛊

对于左边填充,添加如下字符串扩展名:Swift 2.0 +extension&nbsp;String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;padLeft&nbsp;(totalWidth:&nbsp;Int,&nbsp;with:&nbsp;String)&nbsp;->&nbsp;String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;toPad&nbsp;=&nbsp;totalWidth&nbsp;-&nbsp;self.characters.count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;toPad&nbsp;<&nbsp;1&nbsp;{&nbsp;return&nbsp;self&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"".stringByPaddingToLength(toPad,&nbsp;withString:&nbsp;with,&nbsp;startingAtIndex:&nbsp;0)&nbsp;+&nbsp;self &nbsp;&nbsp;&nbsp;&nbsp;}}Swift 3.0 +extension&nbsp;String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;padLeft&nbsp;(totalWidth:&nbsp;Int,&nbsp;with:&nbsp;String)&nbsp;->&nbsp;String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;toPad&nbsp;=&nbsp;totalWidth&nbsp;-&nbsp;self.characters.count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;toPad&nbsp;<&nbsp;1&nbsp;{&nbsp;return&nbsp;self&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"".padding(toLength:&nbsp;toPad,&nbsp;withPad:&nbsp;with,&nbsp;startingAt:&nbsp;0)&nbsp;+&nbsp;self &nbsp;&nbsp;&nbsp;&nbsp;}}使用此方法:for&nbsp;myInt&nbsp;in&nbsp;1...3&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;print("\(myInt)".padLeft(totalWidth:&nbsp;2,&nbsp;with:&nbsp;"0"))}
打开App,查看更多内容
随时随地看视频慕课网APP