513 Stimmen

Erhalten Sie das n-te Zeichen eines Strings in Swift

Wie kann ich das n-te Zeichen einer Zeichenkette erhalten? Ich habe es mit dem eckigen Klammern ([]) Operator versucht, aber es hat nicht geklappt.

var string = "Hallo, Welt!"

var firstChar = string[0] // Wirft einen Fehler

FEHLER: 'subscript' ist nicht verfügbar: String kann nicht mit einem Int indiziert werden, siehe den Dokumentationskommentar für weitere Informationen

0voto

eurobrew Punkte 77

Sie könnten SwiftString (https://github.com/amayne/SwiftString) verwenden, um dies zu tun.

"Hello, world!"[0] // H
"Hello, world!"[0...4] // Hello

HAFTUNGSAUSSCHLUSS: Ich habe diese Erweiterung geschrieben

0voto

philippinedev Punkte 1220

Holen Sie den ersten Buchstaben:

erstes(str) // ersten Buchstaben abrufen

Mehr hier: http://sketchytech.blogspot.com/2014/08/swift-pure-swift-method-for-returning.html

-1voto

AkilRajdho Punkte 49

Fügen Sie diese Erweiterung Ihrem Projekt hinzu

  extension String{
func trim() -> String
{
    return self.trimmingCharacters(in: NSCharacterSet.whitespaces)
}

var length: Int {
    return self.count
}

subscript (i: Int) -> String {
    return self[i ..< i + 1]
}

func substring(fromIndex: Int) -> String {
    return self[min(fromIndex, length) ..< length]
}

func substring(toIndex: Int) -> String {
    return self[0 ..< max(0, toIndex)]
}

subscript (r: Range) -> String {
    let range = Range(uncheckedBounds: (lower: max(0, min(length, r.lowerBound)),
                                        upper: min(length, max(0, r.upperBound))))
    let start = index(startIndex, offsetBy: range.lowerBound)
    let end = index(start, offsetBy: range.upperBound - range.lowerBound)
    return String(self[start ..< end])
}

func substring(fromIndex: Int, toIndex:Int)->String{
    let startIndex = self.index(self.startIndex, offsetBy: fromIndex)
    let endIndex = self.index(startIndex, offsetBy: toIndex-fromIndex)

    return String(self[startIndex...endIndex])
}

Verwenden Sie die Funktion dann so

let str = "Beispiel-String"

let teilstring = str.substring(fromIndex: 0, toIndex: 0) //gibt S zurück
let beispielSubstr = str.substring(fromIndex: 0, toIndex: 5) //gibt Beispiel zurück

-1voto

Sreekanth G Punkte 558

Überprüfen Sie dies in Swift 4

let myString = "LIEBE"

self.textField1.text = String(Array(myString)[0])
self.textField2.text = String(Array(myString)[1])
self.textField3.text = String(Array(myString)[2])
self.textField4.text = String(Array(myString)[3])

-1voto

Josh R Punkte 104

Swift 5.1

Hier könnte die einfachste Lösung aus allen diesen Antworten sein.

Füge diese Erweiterung hinzu:

extension String {
    func retrieveFirstCharacter() -> String? {
        guard self.count > 0 else { return nil }
        let numberOfCharacters = self.count
        return String(self.dropLast(numberOfCharacters - 1))
    }
}

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