Swift Package Foundation : Erweiterungen für Datentypen


Im Unterschied zu anderen Programmiersprachen ist Swift bei Funktionen zur Manipulation von Zeichenketten schlecht aufgestellt. Beispielsweise sucht man die in C# gängigen Methoden left order right vergebens. Zwar kann ein vollwertiger Ersatz mit nur geringem Aufwand entwickelt werden, dies immer wieder zu tun ist jedoch auch keine gute Lösung. Besser wäre eine Klassenbibliothek, die alle diese Methoden zusammenfasst. Im Idealfall ist es eine Swift Package. So ein Paket kann beispielsweise auf GitHub gehostet werden und ist dann mit nur geringem Aufwand in Xcode-Projekte einzubinden. Mein Paket, mit hoffentlich sinnvollen Erweiterungen für einige Datentypen, befindet sich unter der folgenden Adresse. Es kann kostenlos genutzt werden.

left

Gibt einen String zurück, bestehenden aus der angegebene Anzahl von Zeichen vom Anfang einer Zeichenkette.

public func left(characterCount : Int) -> String

{

    if characterCount > 0 && characterCount < self.count

    {

        let sub = String(self[..<self.index(self.startIndexoffsetBy: characterCount)])

        return sub

    }

    return self

}

right

Gibt einen String zurück, bestehenden aus der angegebene Anzahl von Zeichen vom Anfang einer Zeichenkette.

public func right(characterCount : Int) -> String

{

    if characterCount > 0 && characterCount < self.count

    {

        let sub = String(self[self.index(self.endIndex, offsetBy: (characterCount * -1))...])

        return sub

    }

    return self

}

firstCharacterUppercase

Gibt einen String zurück, bei dem das erste Zeichen in einen Großbuchstaben umgewandelt wurde. Die Groß- und Kleinschreibung für alle anderen Zeichen bleibt unverändert.

public func firstCharacterUppercase() -> String

{

    var isFirst = true

    var newString = ""

    let characters = Array(self)

        

    for char in characters {

        if isFirst {

            newString = char.uppercased()

        } else {

            newString += String(char)

        }

        isFirst = false

    }

    return newString

}

capitalizeWords

Unterteilt einen String in Wörter, durch Leerzeichen getrennt, und wandelt bei jedem Wort das erste Zeichen in einen Großbuchstaben um. Die Groß- und Kleinschreibung für alle anderen Zeichen bleibt unverändert.

public func capitalizeWords() -> String

{

    var newString = "";

    let array = self.components(separatedBy: " ")

    for word in array {

        newString += word.firstCharacterUppercase()

        if word != array.last {

            newString += " "

        }

    }

    return newString

}

removeSuffix

Entfernt eine vorgegebene Zeichenkette vom Ende eines String, sofort diese dort vorhanden ist.

public func removeSuffix(_ suffix: String) -> String

{

    guard self.hasSuffix(suffix) else { return self }

    return String(self.dropLast(suffix.count))

}

removePrefix

Entfernt eine vorgegebene Zeichenkette vom Anfang eines String, sofort diese dort vorhanden ist.

public func removePrefix(_ prefix: String) -> String

{

    guard self.hasPrefix(prefix) else { return self }

    return String(self.dropFirst(prefix.count))

}


Geschrieben am: 20.08.2022
Technologien: Swift, Package