您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Swift提取字符串中的最后一个单词

使用Swift提取字符串中的最后一个单词

您可以使用String方法enumerateSubstringsInRange。第一个参数只是传递您的字符串Range<Index>和选项.byWords。只需将每个子字符串附加到结果集合中并返回即可。

(对于较早的Swift语法,请检查编辑历史记录)

import Foundation

extension StringProtocol { // for Swift 4 you need to add the constrain `where Index == String.Index` 
    var byWords: [SubSequence] {
        var byWords: [SubSequence] = []
        enumerateSubstrings(in: startIndex..., options: .byWords) { _, range, _, _ in
            byWords.append(self[range])
        }
        return byWords
    }
}

用法

let sentence = "Out of this world!!!"
let words = sentence.byWords             // ["Out", "of", "this", "world"]
let firstWord = words.first      // "Out"
let lastWord = words.last         // world"
let first2Words = words.prefix(2) // ["Out", "of"]
let last2Words = words.suffix(2)   // ["this", "world"]

清洁标点符号过滤字符串中的字母和空格

let clean = sentence.filter{ $0.isLetter || $0.isWhitespace }

查找字符串中最后一个空格的索引

if let index = clean.lastIndex(of: " ") {
    let lastWord = clean[index...]
    print(lastWord)   // "world"
}

查找字符串中第一个空格的索引

if let index = clean.firstIndex(of: " ") {
    let firstWord = clean[...index]
    print(firstWord)  // "Out""
}
Swift 2022/1/1 18:14:35 有473人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶