在Swift字符串中查找Substring的所有实例的有效方法[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

Swift 4显然已经为String引入了很多新的变化。我想知道现在是否有一个内置方法可以在String中查找子字符串的所有实例。

这是我正在寻找的那种东西:

let searchSentence = "hello world, hello"
let wordToMatch = "hello"

let matchingIndexArray = searchSentence.indices(of: "wordToMatch")

'matchingIndexArray'将是[0,13]

swift string swift4 string-search
1个回答
0
投票
import Foundation

let searchSentence = "hello world, hello"

var searchRange = searchSentence.startIndex..<searchSentence.endIndex
var ranges: [Range<String.Index>] = []

let searchTerm = "hello"

while let range = searchSentence.range(of: searchTerm, range: searchRange) {
    ranges.append(range)
    searchRange = range.upperBound..<searchRange.upperBound
}

print(ranges.map { "(\(searchSentence.distance(from: searchSentence.startIndex, to: $0.lowerBound)), \(searchSentence.distance(from: searchSentence.startIndex, to: $0.upperBound)))" })

输出:

["(0, 5)", "(13, 18)"]
© www.soinside.com 2019 - 2024. All rights reserved.