删除字符串中的最后两个字符

问题描述 投票:56回答:5

是否有一种快速的方法可以在Swift中删除字符串中的最后两个字符?我看到有一种简单的方法可以删除最后一个字符,如here所示。您知道如何删除最后两个字符吗?谢谢!

ios swift string swift3
5个回答
127
投票

更新:Xcode 9•Swift 4或更高版本

String现在符合RangeReplaceableCollection,因此您可以直接在String中使用收集方法dropLast,因此不再需要扩展名。唯一的区别是它返回一个Substring。如果您需要一个字符串,则需要从中初始化一个新字符串:

let string = "0123456789"
let substring1 = string.dropLast(2)         // "01234567"
let substring2 = substring1.dropLast()      // "0123456"
let result = String(substring2.dropLast())  // "012345"

我们也可以扩展LosslessStringConvertible以添加尾随语法,我认为这可以提高可读性:

extension LosslessStringConvertible {
    var string: String { .init(self) }
}

用法:

let result = substring.dropLast().string

58
投票
var name: String = "Dolphin"
let endIndex = name.index(name.endIndex, offsetBy: -2)
let truncated = name.substring(to: endIndex)
print(name)      // "Dolphin"
print(truncated) // "Dolph"

22
投票

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"

1
投票

使用removeSubrange(Range<String.Index>)就像:

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

如果字符串长度少于2个字符,则会崩溃。这是您的要求吗?


0
投票

更适合使用removeLast()

var myString = "Hello world"
myString.removeLast(2)

output : "Hello wor"
© www.soinside.com 2019 - 2024. All rights reserved.