With Swift 5, you may choose one of the three examples shown below in order to solve your problem.
#1. Using String's init(format:_:) initializer
Foundation provides Swift String a init(format:_:) initializer. init(format:_:) has the following declaration:
init(format: String, _ arguments: CVarArg...)
Returns a String object initialized by using a given format string as a template into which the remaining argument values are substituted.
The following Playground code shows how to create a String formatted from Int with at least two integer digits by using 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. Using String's init(format:arguments:) initializer
Foundation provides Swift String a init(format:arguments:) initializer. init(format:arguments:) has the following declaration:
init(format: String, arguments: [CVarArg])
Returns a String object initialized by using a given format string as a template into which the remaining argument values are substituted according to the user’s default locale.
The following Playground code shows how to create a String formatted from Int with at least two integer digits by using 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. Using NumberFormatter
Foundation provides NumberFormatter. Apple states about it:
Instances of NSNumberFormatter format the textual representation of cells that contain NSNumber objects and convert textual representations of numeric values into NSNumber objects. The representation encompasses integers, floats, and doubles; floats and doubles can be formatted to a specified decimal position.
The following Playground code shows how to create a NumberFormatter that returns String? from a Int with at least two integer digits:
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")
String(format: "%04d", 42), it's that simple.