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.

13voto

Kiet Nguyen Punkte 579

Aktualisiert für Xcode 6 Beta 4, ändern Sie die Methode utf16count --> utf16Count

 var test1: String = "Scott"
 var length =  test1.utf16Count

Oder

 var test1: String = "Scott"
 var length = test1.lengthOfBytesUsingEncoding(NSUTF16StringEncoding)

12voto

Jeremy Fox Punkte 2638

Ab Swift 1.2 wurde utf16Count entfernt. Sie sollten jetzt die globale count() Funktion verwenden und die UTF16-Ansicht des Strings übergeben. Beispiel unten...

let string = "Einige Zeichenkette"
count(string.utf16)

11voto

Tyler Liu Punkte 17503

Für Xcode 7.3 und Swift 2.2.

let str = ""
  1. Wenn Sie die Anzahl der visuellen Zeichen möchten:

    str.characters.count
  2. Wenn Sie die "16-Bit-Codeeinheiten innerhalb der UTF-16-Repräsentation des Strings" möchten:

    str.utf16.count

Meistens ist 1 das, was Sie brauchen.

Wann würden Sie 2 brauchen? Ich habe einen Anwendungsfall für 2 gefunden:

let regex = try! NSRegularExpression(pattern:"", 
    options: NSRegularExpressionOptions.UseUnixLineSeparators)
let str = ""
let result = regex.stringByReplacingMatchesInString(str, 
    options: NSMatchingOptions.WithTransparentBounds, 
    range: NSMakeRange(0, str.utf16.count), withTemplate: "Hund")
print(result) // HundHundHundHundHundHund

Wenn Sie 1 verwenden, ist das Ergebnis inkorrekt:

let result = regex.stringByReplacingMatchesInString(str, 
    options: NSMatchingOptions.WithTransparentBounds, 
    range: NSMakeRange(0, str.characters.count), withTemplate: "Hund")
print(result) // HundHundHund

9voto

Anil Varghese Punkte 42669

Du könntest es so versuchen

var test1: String = "Scott"
var length =  test1.bridgeToObjectiveC().length

8voto

Adam Punkte 373

In Swift 2.x ist dies die Methode, um die Länge eines Strings zu finden

let findLength = "Dies ist ein Textstring"
findLength.characters.count

gibt 24 zurück

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