Есть ли быстрый способ удалить последние два символа в String в Swift 3.0? Я вижу, что есть простой способ удалить последний символ, как это было четко указано здесь. Вы знаете, как удалить последние два символа? Спасибо!
Удалить последние два символа в строке (Swift 3.0)
Ответ 1
var name: String = "Dolphin"
let endIndex = name.index(name.endIndex, offsetBy: -2)
let truncated = name.substring(to: endIndex)
print(name) // "Dolphin"
print(truncated) // "Dolph"
Ответ 2
обновление: Xcode 9 • Swift 4 или новее
String теперь соответствует RangeReplaceableCollection, так что вы можете использовать метод коллекции dropLast прямо в String и, следовательно, расширение, в котором больше нет необходимости. Разница лишь в том, что он возвращает подстроку. Если вам нужна строка, вам нужно инициализировать новую строку:
let string = "0123456789"
let substring1 = string.dropLast(2) // "01234567"
let substring2 = substring1.dropLast() // "0123456"
let result = String(substring2.dropLast()) // "012345"
Swift 3.x
Вы можете использовать метод dropLast (n :) для символов, чтобы удалить любое количество символов:
let str = "0123456789"
let result = String(str.characters.dropLast(2)) // "01234567"
Как расширение:
extension String {
func dropLast(_ n: Int = 1) -> String {
return String(characters.dropLast(n))
}
var dropLast: String {
return dropLast()
}
}
let str = "0123456789"
let result = str.dropLast(2) // "01234567"
let result2 = result.dropLast // "0123456"
Ответ 3
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"
Ответ 4
Используйте removeSubrange(Range<String.Index>)
так же, как:
var str = "Hello, playground"
str.removeSubrange(Range(uncheckedBounds: (lower: str.index(str.endIndex, offsetBy: -2), upper: str.endIndex)))
Это приведет к сбою, если длина строки меньше 2 символов. Это требование для вас?
Ответ 5
Лучше использовать removeLast()
var myString = "Hello world"
myString.removeLast(2)
output : "Hello wor"