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

Delete all characters after a certain character from a string in Swift

我有一个textField,我想删除某个字符之后的所有字符。

例如,如果我在 textField 中的是单词 Orange,并且我想删除 n 之后的所有字符,我想在删除后得到 Ora

如何从 Swift 中的字符串中删除特定字符之后的所有字符?

谢谢

你可以这样做:

guard let range = text.rangeOfString("Your String or Character here") else {
    return the text 
}

return text.substringToIndex(range.endIndex)
// depending on if you want to delete before a certain string, you would use range.startIndex

您可以使用 StringProtocol 方法 range(of string:),得到结果范围 lowerBound,用它创建一个 PartialRangeUpTo 并下标原始字符串:

Swift 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"
}