Swift 文字列 切り出し・部分文字列(Substring)の扱い方を初心者向けに解説
生徒
「Swiftで文字列の一部だけを取り出したいんですが、どうすればいいんですか?」
先生
「Swiftでは文字列を切り出す方法がいくつかあります。部分文字列(Substring)という仕組みを使って、効率よく取り出すこともできますよ。」
生徒
「Substringって何ですか?普通のStringとは違うんですか?」
先生
「良い質問ですね。SubstringはStringの一部分を表す型で、元の文字列を参照する特徴があります。それでは具体的に見てみましょう!」
1. Swiftの文字列を切り出す基本
文字列を切り出すとは、文章の中から必要な部分だけを取り出す操作のことです。プログラミング未経験の方でも、日常で「名前の最初の3文字だけ使いたい」「文章の最後だけ表示したい」と思う場面があるはずです。Swiftでは、こうした処理をとてもシンプルな書き方で実現できます。
特に初心者におすすめなのが、prefixとsuffixです。難しいインデックスの知識がなくても、「先頭から何文字」「末尾から何文字」と感覚的に指定できるため、Swiftの文字列操作に慣れる第一歩として最適です。
let text = "Swift言語"
let firstPart = text.prefix(5) // 先頭から5文字
let lastPart = text.suffix(2) // 末尾から2文字
print(firstPart)
print(lastPart)
Swift
言語
この例では、「Swift言語」という文字列から、前半の「Swift」と後半の「言語」を取り出しています。prefixは先頭から指定した文字数分を、suffixは末尾から指定した文字数分を切り出します。
まずは「文字列の一部を簡単に取り出せる」という感覚をつかむことが大切です。Swiftの文字列操作は直感的に書けるので、初心者でも安心して使えます。
2. インデックスを使った部分文字列の取り出し
Swiftの文字列は、「インデックス」という仕組みを使って1文字ずつ管理されています。インデックスは文字の位置を表す目印のようなものですが、他の言語のように単純な数字(0や1など)ではありません。これは、日本語のようなマルチバイト文字でも安全に文字を扱うためです。
最初は少し難しく感じるかもしれませんが、「文字列の先頭から何文字目までを指定して切り出す」と考えると理解しやすくなります。
let text = "プログラミング"
let startIndex = text.startIndex
let endIndex = text.index(startIndex, offsetBy: 4)
let sub = text[startIndex...endIndex]
print(sub)
プログラ
このサンプルでは、「プログラミング」という文字列の先頭から5文字分を取り出しています。startIndexは文字列の一番最初の位置を表し、offsetBy: 4は「そこから4文字先まで」を意味します。範囲指定(startIndex...endIndex)を使うことで、指定した部分だけを安全に切り出すことができます。
プログラミング未経験の方は、「Swiftでは文字を数字で直接指定できない代わりに、専用の目印(インデックス)を使う」と覚えておくと混乱しにくくなります。
3. Substring型とは?
Swiftで文字列の一部を取り出すと、その結果がSubstring型になる場合があります。Substringは「文字列のコピー」ではなく、「元のStringを参照する仕組み」を使っているのが大きな特徴です。そのため、新しくメモリを大量に使わず、効率よく文字列を扱えるようになっています。
ただし、Substringは元の文字列と強く結びついているため、長期間保持すると元の文字列全体がメモリに残り続ける点には注意が必要です。初心者の方は「一時的に使う文字列がSubstringになる」と覚えておくと理解しやすいでしょう。
let text = "Hello, Swift!"
let part = text.prefix(5)
print(part)
print(type(of: part))
Hello
Substring
この例では、"Hello, Swift!"という文字列の先頭5文字を取り出しています。表示結果を見ると文字列は「Hello」と出力されますが、型はSubstringになっています。見た目はStringと同じでも、内部的には異なる型である点が重要です。
まずは「文字列を切り出すとSubstringになることがある」という基本を押さえておけば十分です。
4. SubstringをStringに変換する
Substringをそのまま使うこともできますが、長期間保持したい場合や他の処理で使いたい場合はStringに変換するのが安全です。
let text = "Swift入門"
let sub = text.prefix(5)
let converted = String(sub)
print(converted)
Swift
String()でラップするだけで簡単に変換できます。これにより扱いやすくなります。
5. 特定の文字で分割して取り出す
文字列を特定の区切り文字で分割する方法もよく使います。Swiftではsplitメソッドを使って分割し、部分文字列を取り出せます。
let sentence = "リンゴ,バナナ,オレンジ"
let fruits = sentence.split(separator: ",")
for fruit in fruits {
print(fruit)
}
リンゴ
バナナ
オレンジ
この方法はCSV(カンマ区切りのデータ)などを扱うときに便利です。
6. 部分文字列の応用:検索と切り出し
文字列の中で特定の単語を探して、その前後を切り出すことも可能です。例えば「Swiftで学ぶプログラミング」という文章から「プログラミング」を探して、その部分だけを切り出す例です。
let text = "Swiftで学ぶプログラミング"
if let range = text.range(of: "プログラミング") {
let sub = text[range]
print(sub)
}
プログラミング
range(of:)を使うと文字列内での位置を見つけられます。その範囲を指定して切り出すことで、特定の単語を抽出できます。
7. SubstringとStringの使い分け
初心者が迷いやすいのがSubstringとStringの違いです。簡単にまとめると次のようになります。
- Substring … 元の文字列の一部を効率的に参照。短期間の利用に向いている。
- String … 独立した文字列データ。長期間保持や再利用に適している。
実際の開発では、処理の目的に応じて変換しながら使い分けることが重要です。
まとめ
Swift 文字列 切り出し・部分文字列(Substring)の扱い方では、文字列 切り出し・部分文字列(Substring)の扱い方をSwiftで扱うときの考え方を確認しました。Swift文字列処理は、書き方だけを覚えるよりも、Xcodeで動かしながら「どこで値が変わるのか」「失敗したときに何が起きるのか」を見たほうが理解しやすくなります。
読み直すポイント
- 文字列 切り出し・部分文字列(Substring)の扱い方で注目する場所として、文字数とバイト数の違い、日本語や絵文字を含む文字列、Data変換の失敗を説明できる
- 日本語、英数字、空文字を入力して、countやUTF-8変換の結果を比べる
- Xcodeのエラー、警告、コンソール出力を読み、原因を1つ言葉にできる
- Swift、Xcode、iOSアプリ開発の中で、この記事の知識を使う場面を想像できる
復習するときは、次のような短いコードを自分の環境で動かしてみましょう。記事のテーマに合わせて値や条件を変えると、Swiftの型安全、Optional、エラー処理、画面更新の見え方が少しずつ整理できます。
let text = "カフェ"
print(text.count)
print(Array(text.utf8))
if let data = text.data(using: .utf8) {
print(data.count)
}
生徒
「文字列 切り出し・部分文字列(Substring)の扱い方は、どこを変えて試せばいいか分かると復習しやすいですね。」
先生
「はい。まずは小さく動かし、次に失敗するケースを1つ足してみましょう。Swiftは型やエラーがヒントを出してくれるので、結果を見ながら直す練習がそのまま実務力につながります。」
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門