文字のカウントと反復処理
絵文字やアクセントを含むテキストを正しく反復処理します。
「文字のカウントと反復処理」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
文字数を数える
StringのcountプロパティはCharacterの値の数を返します。これはユーザーが認識する文字数と同じです。
let word = "Swift"
print(word.count)countは見た目の文字を反映する
Swiftは書記素クラスタを数えるため、アクセント付き文字や絵文字は1文字として数えられ、読者の見た目と一致します。
let cafe = "caf\u{e9}"
print(cafe.count)絵文字の文字数を正しく数える
1つの絵文字は、内部では複数のバイトやスカラーにまたがっていても、1文字として数えられます。
let s = "Hi\u{1F600}"
print("Characters:", s.count)複雑な絵文字も1文字として数えられる
家族や国旗のような複数のスカラーで構成された絵文字も、単純にバイト数やスカラー数を数える場合とは異なり、1つのCharacterとして数えられます。
let flag = "\u{1F1FA}\u{1F1F8}"
print("Characters:", flag.count)
print("Scalars:", flag.unicodeScalars.count)for-inで反復処理する
文字列に対するfor-inループでは、各Characterを順番に取得できます。書記素クラスタも正しく1つずつ処理されます。
for ch in "a\u{1F600}b" {
print(ch)
}特定の文字を数える
反復処理とカウンターを組み合わせるか、filterを使うことで、特定の文字の出現回数を数えられます。
let text = "banana"
let aCount = text.filter { $0 == "a" }.count
print("a appears:", aCount)空かどうかを確認する
countと0を比較するよりもisEmptyを使うことをおすすめします。こちらのほうが意図が明確で、より高速になる場合もあります。
let s = ""
print(s.isEmpty)
print("hello".isEmpty)インデックスは整数ベースではない
文字ごとにサイズが異なるため、Swiftの文字列では整数の添字ではなくString.Indexを使います。
let word = "Swift"
let first = word[word.startIndex]
print(first)インデックスを使って反復処理する
位置と文字の両方が必要な場合は、indicesを使って反復処理できます。
let word = "Hi"
for i in word.indices {
print(word[i])
}オフセットを取得しながら列挙する
enumerated()を使うと、各文字とともに増加する整数のオフセットを取得できます。
for (i, ch) in "abc".enumerated() {
print(i, ch)
}正しく数えることが重要な理由
書記素クラスタ単位で数えることで、国際的なテキストや絵文字に対して、長さの確認、切り詰め、検証が直感どおりに動作します。
let name = "Jose\u{301}"
print("Visible length:", name.count)確認問題
Swiftが1つの絵文字をどのように数えるか思い出してください。
まとめ: 文字のカウントと反復処理
countは書記素クラスタの数を返すため、絵文字やアクセント付き文字が1文字として数えられること、for-inは文字を正しく反復処理すること、文字列では整数ではなくString.Indexを使うこと、そしてenumerated()でオフセットを取得できることを学びました。
let s = "ab\u{1F600}"
print("Count:", s.count)
for (i, ch) in s.enumerated() { print(i, ch) }よくある質問
「文字のカウントと反復処理」レッスンは無料ですか?
はい。「文字のカウントと反復処理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「文字のカウントと反復処理」で何を学びますか?
絵文字やアクセントを含むテキストを正しく反復処理します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「文字のカウントと反復処理」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。