當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。