414 Stimmen

Führende Nullen für Int in Swift

Ich möchte in Swift einen Int in eine String mit führenden Nullen umwandeln. Betrachten Sie beispielsweise diesen Code:

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

Derzeit ist das Ergebnis davon:

1
2
3

Aber ich möchte, dass es so aussieht:

01
02
03

Gibt es eine saubere Möglichkeit, dies innerhalb der Swift-Standardbibliotheken zu tun?

-1voto

Vasily Bodnarchuk Punkte 22056

Detail

Xcode 9.0.1, swift 4.0

Lösungen

Daten

import Foundation

let array = [0,1,2,3,4,5,6,7,8]

Lösung 1

extension Int {

    func getString(prefix: Int) -> String {
        return "\(prefix)\(self)"
    }

    func getString(prefix: String) -> String {
        return "\(prefix)\(self)"
    }
}

for item in array {
    print(item.getString(prefix: 0))
}

for item in array {
    print(item.getString(prefix: "0x"))
}

Lösung 2

for item in array {
    print(String(repeatElement("0", count: 2)) + "\(item)")
}

Lösung 3

extension String {

    func repeate(count: Int, string: String? = nil) -> String {

        if count > 1 {
            let repeatedString = string ?? self
            return repeatedString + repeate(count: count-1, string: repeatedString)
        }
        return self
    }
}

for item in array {
    print("0".repeate(count: 3) + "\(item)")
}

-12voto

Eric Zhou Punkte 935

Im Gegensatz zu den anderen Antworten, die einen Formatter verwenden, können Sie einfach einen "0"-Text vor jeder Nummer innerhalb der Schleife hinzufügen, so wie hier:

for myInt in 1...3 {
    println("0" + "\(myInt)")
}

Der Formatter ist jedoch oft besser, wenn Sie beispielsweise eine festgelegte Anzahl von Nullen für jede separate Nummer hinzufügen müssen. Wenn Sie jedoch nur eine Null hinzufügen müssen, liegt es wirklich an Ihnen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X