从Swift中的字符串中删除某个字符后面的所有字符

fs_*_*gre 13 string nsstring uitextfield swift

我有一个textField,我想删除某个角色后的所有角色.

举例来说,如果我有什么在文本框这个词Orange,我想删除所有字符后,n我想获得Ora后删除.

如何删除Swift中字符串中某个字符后的所有字符?

谢谢

Leo*_*bus 29

您可以将rangeOfString和substringToIndex用于其startIndex,如下所示:

斯威夫特2

let word = "orange"
if let index = word.rangeOfString("n")?.startIndex {
    print(word.substringToIndex(index))  // "ora"
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

let word = "orange"
if let index = word.range(of: "n")?.lowerBound {
    print(word.substring(to: index))  // "ora"
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特4

let word = "orange"
if let index = word.range(of: "n")?.lowerBound {
    let substring = word[..<index]                 // "ora"
    // or  let substring = word.prefix(upTo: index) // "ora"
    // (see picture below) Using the prefix(upTo:) method is equivalent to using a partial half-open range as the collection’s subscript. 
    // The subscript notation is preferred over prefix(upTo:).

    let string = String(substring)
    print(string)  // "ora"
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 在 Swift 4 中,我喜欢使用 `prefix(upTo:)` 和 `suffix(from:)` 方法来代替。`if let index = word.range(of: "n")?.lowerBound { let StringAfter = String(word.prefix(upTo: index)) }` (4认同)