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

小编典典

您可以使用String方法enumerateSubstringsInRange。第一个参数只是传递您的字符串Range和选项.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""

}

2020-07-07

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值