ด้วย Swift 5 คุณสามารถเลือกหนึ่งในสามตัวอย่างที่แสดงด้านล่างเพื่อแก้ปัญหาของคุณ
# 1 ใช้String's init(format:_:)initializer
Foundationให้ Swift Stringa init(format:_:)initializer init(format:_:)มีการประกาศดังต่อไปนี้:
init(format: String, _ arguments: CVarArg...)
ส่งคืนStringวัตถุที่เริ่มต้นได้โดยใช้สตริงรูปแบบที่กำหนดเป็นแม่แบบซึ่งค่าอาร์กิวเมนต์ที่เหลือจะถูกแทนที่
รหัส Playground ต่อไปนี้แสดงวิธีสร้างStringรูปแบบจากที่Intมีตัวเลขจำนวนเต็มอย่างน้อยสองหลักโดยใช้init(format:_:):
import Foundation
let string0 = String(format: "%02d", 0) // returns "00"
let string1 = String(format: "%02d", 1) // returns "01"
let string2 = String(format: "%02d", 10) // returns "10"
let string3 = String(format: "%02d", 100) // returns "100"
# 2 ใช้String's init(format:arguments:)initializer
Foundationให้ Swift Stringa init(format:arguments:)initializer init(format:arguments:)มีการประกาศดังต่อไปนี้:
init(format: String, arguments: [CVarArg])
ส่งคืนStringวัตถุที่เริ่มต้นได้โดยใช้สตริงรูปแบบที่กำหนดเป็นแม่แบบซึ่งค่าอาร์กิวเมนต์ที่เหลือจะถูกแทนที่ตามสถานที่เริ่มต้นของผู้ใช้
รหัส Playground ต่อไปนี้แสดงวิธีสร้างStringรูปแบบจากที่Intมีตัวเลขจำนวนเต็มอย่างน้อยสองหลักโดยใช้init(format:arguments:):
import Foundation
let string0 = String(format: "%02d", arguments: [0]) // returns "00"
let string1 = String(format: "%02d", arguments: [1]) // returns "01"
let string2 = String(format: "%02d", arguments: [10]) // returns "10"
let string3 = String(format: "%02d", arguments: [100]) // returns "100"
# 3 การใช้NumberFormatter
NumberFormatterมูลนิธิให้ Apple ระบุเกี่ยวกับมัน:
อินสแตนซ์ของการจัดNSNumberFormatterรูปแบบการแสดงข้อความของเซลล์ที่มีNSNumberวัตถุและแปลงการเป็นตัวแทนข้อความต้นฉบับของค่าตัวเลขเป็นNSNumberวัตถุ การเป็นตัวแทนประกอบด้วยจำนวนเต็มลอยและเพิ่มเป็นสองเท่า รูปแบบลอยและคู่สามารถจัดรูปแบบไปยังตำแหน่งทศนิยมที่ระบุ
รหัส Playground ต่อไปนี้แสดงวิธีสร้าง a NumberFormatterที่ส่งคืนString?จาก a Intด้วยตัวเลขจำนวนเต็มอย่างน้อยสองหลัก:
import Foundation
let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 2
let optionalString0 = formatter.string(from: 0) // returns Optional("00")
let optionalString1 = formatter.string(from: 1) // returns Optional("01")
let optionalString2 = formatter.string(from: 10) // returns Optional("10")
let optionalString3 = formatter.string(from: 100) // returns Optional("100")