Angenommen, Sie möchten eine Feldlänge von 2 mit führenden Nullen, dann tun Sie Folgendes:
import Foundation
for myInt in 1 ... 3 {
print(String(format: "%02d", myInt))
}
Ausgabe:
01
02
03
Dies erfordert import Foundation
technisch gesehen, dass es nicht Teil der Swift-Sprache ist, sondern eine vom Foundation
Framework bereitgestellte Funktion . Beachten Sie, dass beide import UIKit
und import Cocoa
include Foundation
nicht erneut importiert werden müssen, wenn Sie bereits Cocoa
oder importiert haben UIKit
.
Die Formatzeichenfolge kann das Format mehrerer Elemente angeben. Wenn Sie beispielsweise versuchen, 3
Stunden, 15
Minuten und 7
Sekunden zu formatieren , können 03:15:07
Sie dies folgendermaßen tun:
let hours = 3
let minutes = 15
let seconds = 7
print(String(format: "%02d:%02d:%02d", hours, minutes, seconds))
Ausgabe:
03:15:07
println("0\(myInt)")
Ihren Vorschlag vorziehen. Das würde die native Swift-String-Klasse verwenden, anstatt die NSString-Formatierung zu durchlaufen.String(format: "%03d", myInt)
werde dir geben"000", "001", ... , "099", "100"
.-3, -9
auftritt. Es wird immer noch dasselbe ohne eine führende Null zurückgegeben.Mit Swift 5 können Sie eines der drei unten gezeigten Beispiele auswählen , um Ihr Problem zu lösen.
# 1. Verwenden
String
desinit(format:_:)
InitialisierersFoundation
bietet SwiftString
eineninit(format:_:)
Initialisierer.init(format:_:)
hat die folgende Erklärung:Der folgende Spielplatzcode zeigt, wie Sie ein
String
FormatInt
mit mindestens zwei ganzzahligen Ziffern erstellen, indem Sie Folgendes verwendeninit(format:_:)
:# 2. Verwenden
String
desinit(format:arguments:)
InitialisierersFoundation
bietet SwiftString
eineninit(format:arguments:)
Initialisierer.init(format:arguments:)
hat die folgende Erklärung:Der folgende Spielplatzcode zeigt, wie Sie ein
String
FormatInt
mit mindestens zwei ganzzahligen Ziffern erstellen, indem Sie Folgendes verwendeninit(format:arguments:)
:#3. Verwenden von
NumberFormatter
Stiftung bietet
NumberFormatter
. Apple sagt dazu:Der folgende Spielplatzcode zeigt, wie Sie eine erstellen
NumberFormatter
, dieString?
von einerInt
mit mindestens zwei ganzzahligen Ziffern zurückkehrt:quelle
Fügen Sie für die linke Auffüllung eine Zeichenfolgenerweiterung wie folgt hinzu:
Swift 2.0 +
Swift 3.0 +
Mit dieser Methode:
quelle
Swift 3.0+
Linke Polsterverlängerung
String
ähnlich wiepadding(toLength:withPad:startingAt:)
inFoundation
Verwendungszweck:
quelle
withPad
Argument mehr als ein einzelnes Zeichen enthält.Swift 5
@imanuo answers ist bereits großartig, aber wenn Sie mit einer Anwendung voller Zahlen arbeiten, können Sie eine Erweiterung wie diese in Betracht ziehen:
Auf diese Weise können Sie überall anrufen:
quelle
in Xcode 8.3.2, iOS 10.3 Das ist jetzt gut
Beispiel 1:
Beispiel 2:
quelle
Die anderen Antworten sind gut, wenn Sie nur mit Zahlen arbeiten, die die Formatzeichenfolge verwenden. Dies ist jedoch gut, wenn Sie möglicherweise Zeichenfolgen haben, die aufgefüllt werden müssen (obwohl dies zugegebenermaßen etwas anders ist als die gestellte Frage, scheint dies im Geiste ähnlich zu sein). Seien Sie auch vorsichtig, wenn die Saite länger als das Pad ist.
Ausgabe
"-----a str"
quelle
Einzelheiten
Xcode 9.0.1, schnell 4.0
Lösungen
Daten
Lösung 1
Lösung 2
Lösung 3
quelle
Im Gegensatz zu den anderen Antworten, die einen Formatierer verwenden, können Sie vor jeder Zahl in der Schleife auch einfach einen "0" -Text einfügen:
Der Formatierer ist jedoch oft besser, wenn Sie für jede einzelne Zahl eine bestimmte Anzahl von Nullen hinzufügen müssen. Wenn Sie jedoch nur eine 0 hinzufügen müssen, ist dies wirklich nur Ihre Wahl.
quelle