编辑/更新:
Xpre 11•Swift 5.1或更高版本
extension StringProtocol { func distance(of element: Element) -> Int? { firstIndex(of: element)?.distance(in: self) } func distance<S: StringProtocol>(of string: S) -> Int? { range(of: string)?.lowerBound.distance(in: self) }}
extension Collection { func distance(to index: Index) -> Int { distance(from: startIndex, to: index) }}
extension String.Index { func distance<S: StringProtocol>(in string: S) -> Int { string.distance(to: self) }}
游乐场测试
let letters = "abcdefg"let char: Character = "c"if let distance = letters.distance(of: char) { print("character (char) was found at position #(distance)") // "character c was found at position #2n"} else { print("character (char) was not found")}
let string = "cde"if let distance = letters.distance(of: string) { print("string (string) was found at position #(distance)") // "string cde was found at position #2n"} else { print("string (string) was not found")}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)