0Pricing
Swift Academy · レッスン

文字列と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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 文字列とUnicode — 書記素、インデックス、部分文字列、API
  2. 一般的なAPI — prefix/suffix/contains、split/join
  3. パフォーマンスのポイント — コピーオンライト
← Swift Academyに戻る