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

在 Swift 中有没有快速删除字符串中最后两个字符的方法?我看到有一个简单的方法来删除最后一个字符清楚地注明 给你。你知道如何删除最后两个字符吗?谢谢!

57186 次浏览

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

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

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

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

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

String 现在符合 RangeReplaceableCollection,因此您可以在 String 中直接使用集合方法 droLast,因此不再需要扩展。唯一的区别是它返回一个 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

迅速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"

最好使用 RemoveLast ()

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


output : "Hello wor"