删除字符串中的最后两个字符(Swift 3.0)

Ben*_*Ben 54 string ios swift swift3

有没有快速的方法来删除Swift 3.0中的字符串中的最后两个字符?我看到有一个简单的方法来删除最后一个字符作为明确指出这里.你知道如何删除最后两个字符吗?谢谢!

Leo*_*bus 124

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

现在String符合RangeReplaceableCollection,所以现在你可以直接在String中使用Array的方法dropLast,因此不再需要扩展.唯一的区别是它返回一个子串.如果你需要一个String,你需要从中初始化一个新的:

let string = "0123456789"
let substring1 = string.dropLast(2)         // "01234567"
let substring2 = substring1.dropLast()      // "0123456"
let result = String(substring2.dropLast())  // "012345"
Run Code Online (Sandbox Code Playgroud)

Swift 3.x

您可以在字符上使用dropLast(n :)方法删除任意数量的字符:

extension LosslessStringConvertible {
    var string: String { .init(self) }
}
Run Code Online (Sandbox Code Playgroud)

作为扩展:

let result = substring.dropLast().string
Run Code Online (Sandbox Code Playgroud)
let string = "0123456789"
let substring1 = string.dropLast(2)         // "01234567"
let substring2 = substring1.dropLast()      // "0123456"
let result = String(substring2.dropLast())  // "012345"
Run Code Online (Sandbox Code Playgroud)

  • 我只是喜欢迅速. (5认同)
  • 谢谢你。真漂亮。 (2认同)

Nav*_*han 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"
Run Code Online (Sandbox Code Playgroud)

  • 与`dropLast(..)`方法[在@LeoDabus答案中显示](http://stackoverflow.com/a/40028338/4573247)相比,此答案中的方法将为较少的字符串产生运行时异常超过两个字符(只有一个字符).另外,虽然`dropLast`方法是Swift本机,但`.substring`是通过Foundation从`NSString`(不完全是Swift本地)桥接的. (5认同)
  • 您只需从OP给出的链接中复制粘贴 (4认同)
  • 原始链接删除最后一个字符,而不是最后两个字符 (3认同)

Dee*_*iya 20

迅捷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"
Run Code Online (Sandbox Code Playgroud)