当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift String.Index samePosition(in:)用法及代码示例


用法一

实例方法

samePosition(in:)

返回给定 UTF-8 视图中与该索引完全对应的位置。

声明

func samePosition(in utf8: String.UTF8View) -> String.UTF8View.Index?

返回值

utf8 中与该索引完全对应的位置。如果此索引在 utf8 中没有精确对应的位置,则此方法返回 nil 。例如,尝试转换 UTF-16 尾随代理项的位置会返回 nil

参数

utf8

用于索引转换的视图。此索引必须是由 utf8 共享的字符串的至少一个视图的有效索引。

详述

此示例首先找到字符 "é" 的位置,然后使用此方法在字符串的 utf8 视图中找到相同的位置。


let cafe = "Café"
if let i = cafe.firstIndex(of: "é") {
    let j = i.samePosition(in: cafe.utf8)!
    print(Array(cafe.utf8[j...]))
}
// Prints "[195, 169]"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法二

实例方法

samePosition(in:)

返回 Unicode 标量的给定视图中与此索引完全对应的位置。

声明

func samePosition(in unicodeScalars: String.UnicodeScalarView) -> String.UnicodeScalarIndex?

返回值

unicodeScalars 中与该索引完全对应的位置。如果此索引在 unicodeScalars 中没有精确对应的位置,则此方法返回 nil 。例如,尝试转换 UTF-16 尾随代理项的位置会返回 nil

参数

unicodeScalars

用于索引转换的视图。此索引必须是由 unicodeScalars 共享的字符串的至少一个视图的有效索引。

详述

此索引必须是 String(unicodeScalars).utf16 的有效索引。

此示例首先在字符串的 utf16 视图中查找空格(UTF-16 代码点 32 )的位置,然后使用此方法在字符串的 unicodeScalars 视图中查找相同的位置。


let cafe = "Café 🍵"
let i = cafe.utf16.firstIndex(of: 32)!
let j = i.samePosition(in: cafe.unicodeScalars)!
print(String(cafe.unicodeScalars[..<j]))
// Prints "Café"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法三

实例方法

samePosition(in:)

返回给定字符串中与该索引完全对应的位置。

声明

func samePosition(in characters: String) -> String.Index?

返回值

characters 中与该索引完全对应的位置。如果此索引在 characters 中没有精确对应的位置,则此方法返回 nil 。例如,尝试转换 UTF-8 连续字节的位置会返回 nil

参数

characters

用于索引转换的字符串。该索引必须是至少一个 characters 视图的有效索引。

详述

此示例首先在字符串的 utf8 视图中查找空格(UTF-8 代码点 32 )的位置,然后使用此方法在字符串中查找相同的位置。


let cafe = "Café 🍵"
let i = cafe.unicodeScalars.firstIndex(of: "🍵")!
let j = i.samePosition(in: cafe)!
print(cafe[j...])
// Prints "🍵"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法四

实例方法

samePosition(in:)

返回给定 UTF-16 视图中与该索引完全对应的位置。

声明

func samePosition(in utf16: String.UTF16View) -> String.UTF16View.Index?

返回值

utf16 中与该索引完全对应的位置。如果此索引在 utf16 中没有精确对应的位置,则此方法返回 nil 。例如,尝试转换 UTF-8 连续字节的位置会返回 nil

参数

utf16

用于索引转换的视图。此索引必须是由 utf16 共享的字符串的至少一个视图的有效索引。

详述

索引必须是 String(utf16) 的有效索引。

此示例首先查找字符"é" 的位置,然后使用此方法在字符串的utf16 视图中查找相同的位置。


let cafe = "Café"
if let i = cafe.firstIndex(of: "é") {
    let j = i.samePosition(in: cafe.utf16)!
    print(cafe.utf16[j])
}
// Prints "233"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 String.Index samePosition(in:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。