Supprimer les deux derniers caractères d'une string (Swift 3.0)

Existe-t-il un moyen rapide de supprimer les deux derniers caractères d'une string dans Swift 3.0? Je vois qu'il y a un moyen simple d'enlever le dernier caractère comme clairement noté ici . Savez-vous comment supprimer les deux derniers caractères? Merci!

var name: Ssortingng = "Dolphin" let endIndex = name.index(name.endIndex, offsetBy: -2) let truncated = name.subssortingng(to: endIndex) print(name) // "Dolphin" print(truncated) // "Dolph" 

Vous pouvez utiliser la méthode dropLast (n 🙂 sur les caractères pour supprimer n'importe quel nombre de caractères:

 let str = "0123456789" let result = Ssortingng(str.characters.dropLast(2)) // "01234567" 

En extension

 extension Ssortingng { func dropLast(_ n: Int = 1) -> Ssortingng { return Ssortingng(characters.dropLast(n)) } var dropLast: Ssortingng { return dropLast() } } 

 let str = "0123456789" let result = str.dropLast(2) // "01234567" let result2 = result.dropLast // "0123456" 

mise à jour: Xcode 9 • Swift 4

Maintenant, Ssortingng est conforme à RangeReplaceableCollection. Vous pouvez maintenant utiliser la méthode dropLast de Array directement dans la string et par conséquent une extension n'est plus nécessaire. La seule différence est qu'il renvoie une sous-string. Si vous avez besoin d'une string, vous devez en initialiser une nouvelle:

 let ssortingng = "0123456789" let subssortingng1 = ssortingng.dropLast(2) // "01234567" let subssortingng2 = subssortingng1.dropLast() // "0123456" let result = Ssortingng(subssortingng2.dropLast()) // "012345" 

Swift 4:

 let str = "Hello, playground" let newSTR1 = str.dropLast(3) print(newSTR1) output: "Hello, playgro" //---------------// let str = "Hello, playground" let newSTR2 = str.dropFirst(2) print(newSTR2) output: "llo, playground" 

Utilisez removeSubrange(Range<Ssortingng.Index>) comme:

 var str = "Hello, playground" str.removeSubrange(Range(uncheckedBounds: (lower: str.index(str.endIndex, offsetBy: -2), upper: str.endIndex))) 

Cela va planter si la string a less de 2 caractères. Est-ce une exigence pour vous?