当前位置: 首页 > 面试题库 >

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

太叔飞翰
2023-03-14
问题内容

在Swift中提取字符串中最后一个单词的方式是什么?因此,如果我有“ Lorem ipsum dolor坐在amet”,请返回“
amet”。最有效的方法是什么?


问题答案:

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

Swift 5或更高版本 (对于较早的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""
}


 类似资料:
  • 问题内容: 在Java中获取字符串的最后一个单词的最简单方法是什么?您可以假设没有标点符号(仅字母字符和空格)。 问题答案:

  • 如何使用Swift从String变量中删除最后一个字符?在文档中找不到它。 以下是完整的示例:

  • 问题内容: 我有 使用JavaScript,如何获得最后五个字符或最后一个字符? 问题答案: 不要使用。请使用此方法,因为它与跨浏览器兼容(请参阅IE)。

  • 问题内容: 如何获取字符串的最后一个字符? 问题答案: 代码: 输出:

  • 我想在一个新变量中存储“UserId”的最后一位数字(这样的UserId是字符串类型)。 我想出了这个,但它是一个很长的df,需要很长时间。关于如何优化/避免循环有什么建议吗?

  • 假设我有如下JSON字符串: 如何使用正则表达式匹配密钥中的最后一个“有趣部分”?我可以期望密钥总是以相同的方式开始(word1、word2、word3、word4)。但是,可能有一些我不想包含在匹配中的内容因文件而异(word5、word6)。 到目前为止,我的想法是: https://regex101.com/r/BjOcfl/1 它与最后一部分相匹配,但也包括一个前期。我希望它只与单词匹配,