838 Stimmen

Holen Sie sich die Länge eines Strings

Wie erhält man die Länge eines String? Zum Beispiel habe ich eine variable definiert wie:

var test1: String = "Scott"

Ich kann jedoch keine Längenmethode für den String finden.

7voto

cjd Punkte 101

Swift 2.0: Holen Sie sich eine Zählung: yourString.text.characters.count

Ein lustiges Beispiel, wie dies nützlich sein könnte, wäre ein Zeichen-Countdown von einer bestimmten Anzahl (zum Beispiel 150) in einem UITextView anzuzeigen:

func textViewDidChange(textView: UITextView) {
    yourStringLabel.text = String(150 - yourStringTextView.text.characters.count)
}

6voto

VYT Punkte 1071

In swift4 habe ich bisher immer string.count verwendet, bis heute habe ich herausgefunden, dass

string.endIndex.encodedOffset

die bessere Alternative ist, da sie schneller ist - für einen String mit 50.000 Zeichen ist sie etwa 6-mal schneller als .count. Das Ergebnis von .count hängt von der Länge des Strings ab, aber .endIndex.encodedOffset nicht.

Aber es gibt ein NEIN. Es ist nicht gut für Strings mit Emojis, es wird ein falsches Ergebnis liefern, also nur .count ist korrekt.

5voto

Ashis Laha Punkte 2186

In Swift 4 : Wenn der String keine Unicode-Zeichen enthält, verwenden Sie bitte das Folgende

let str : String = "abcd"
let count = str.count // Ausgabe 4

Wenn der String Unicode-Zeichen enthält, verwenden Sie bitte das Folgende :

let spain = "España"
let count1 = spain.count // Ausgabe 6
let count2 = spain.utf8.count // Ausgabe 7

4voto

Mr.Shin Punkte 89

Swift 4

let str =  "Dein Name"

str.count 

Denke daran: Auch Leerzeichen werden mitgezählt

4voto

Fangming Punkte 22809

Swift 4 Update im Vergleich zu Swift 3

Swift 4 entfernt die Notwendigkeit eines Zeichenarrays in einem String. Das bedeutet, dass Sie direkt count auf einem string aufrufen können, ohne zuerst das Zeichenarray zu erhalten.

"hello".count                  // 5

Während Sie in Swift 3 das Zeichenarray erhalten und dann die Anzahl der Elemente in diesem Array zählen müssen. Beachten Sie, dass diese folgende Methode weiterhin in Swift 4.0 verfügbar ist, da Sie immer noch characters aufrufen können, um auf das Zeichenarray des angegebenen Strings zuzugreifen.

"hello".characters.count       // 5

Swift 4.0 übernimmt auch Unicode 9 und kann jetzt Graphemcluster interpretieren. Zum Beispiel wird das Zählen eines Emojis Ihnen 1 geben, während Sie in Swift 3.0 Zählungen größer als 1 erhalten können.

"".count // Swift 4.0 gibt 1 aus, Swift 3.0 gibt 2 aus
"".count // Swift 4.0 gibt 1 aus, Swift 3.0 gibt 4 aus

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