文字列とUnicode — 書記素、インデックス、部分文字列、API
Unicodeに対応したStringを理解します。拡張書記素クラスタ、String.Index、部分文字列、一般的なAPI(prefix/suffix/contains、split/join)、コピーオンライトによるパフォーマンスを扱います。
「文字列とUnicode — 書記素、インデックス、部分文字列、API」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。
Unicodeと書記素
SwiftのStringはUnicodeに正しく対応しています。ユーザーに見える1文字が複数のスカラー(拡張書記素クラスタ)で構成される場合があります。
- 例: 肌の色を含む絵文字、アクセント付き文字
- countはバイト数ではなく文字数を数えます
文字数のカウント
countはバイト数ではなく、文字(書記素クラスタ)の数を測定します。
let wave = "👋🏽" // hand + skin tone modifier
let text = "Hi " + wave
print(text, "count =", text.count) // counts visible charactersインデックスとナビゲーション
String.Indexと、startIndex、index(after:)、index(_:offsetBy:)などのヘルパーを使用します。
let s = "Swift"
let firstIndex = s.startIndex
let secondIndex = s.index(after: firstIndex)
print(s[firstIndex], s[secondIndex]) // S w部分文字列
Substringのビューは元のStringとストレージを共有します。長期間保存する場合はString(left)に変換します。
let phrase = "hello.world"
let dot = phrase.firstIndex(of: ".")!
let left = phrase[..<dot] // Substring (shares storage)
let right = phrase[phrase.index(after: dot)...] // Substring
print(left, right)一般的なAPI
便利なAPIには、hasPrefix、hasSuffix、contains、さらにsplit/joinedがあります。
let path = "/usr/local/bin"
print(path.hasPrefix("/usr")) // true
print(path.hasSuffix("bin")) // true
print(path.contains("local")) // true
let parts = path.split(separator: "/") // [ "", "usr", "local", "bin" ] without first slash
let joined = parts.joined(separator: "-")
print(joined)パフォーマンス(COW)
パフォーマンス: StringとSubstringはコピーオンライトを使用します。コピーは変更されるまで低コストです。長期間保存する場合はSubstringをStringに変換します。
Stringのインデックス規則
クイックチェック: SwiftのStringにインデックスでアクセスする正しい方法は何ですか?
振り返り
振り返り: Unicodeに対応したStringは書記素クラスタを使用します。String.Indexで移動し、Substringとしてスライスし、一般的なAPIを使用し、COWのパフォーマンスを覚えておきましょう。
よくある質問
「文字列とUnicode — 書記素、インデックス、部分文字列、API」レッスンは無料ですか?
はい。「文字列とUnicode — 書記素、インデックス、部分文字列、API」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。
「文字列とUnicode — 書記素、インデックス、部分文字列、API」で何を学びますか?
Unicodeに対応したStringを理解します。拡張書記素クラスタ、String.Index、部分文字列、一般的なAPI(prefix/suffix/contains、split/join)、コピーオンライトによるパフォーマンスを扱います。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「文字列とUnicode — 書記素、インデックス、部分文字列、API」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 文字列とUnicode — 書記素、インデックス、部分文字列、API
- 一般的なAPI — prefix/suffix/contains、split/join
- パフォーマンスのポイント — コピーオンライト