部分文字列の抽出

Swift:
部分文字列の抽出

How to: (方法)

Swiftでは、String型からサブストリングを取り出すために、startIndex, endIndex, rangeを使います。下記はコード例と出力です。

let text = "こんにちは世界"
let startIndex = text.index(text.startIndex, offsetBy: 5)
let endIndex = text.index(text.startIndex, offsetBy: 7)
let substring = text[startIndex...endIndex]  // 世界
print(substring)  // 出力: "世界"

startIndexendIndexを使って範囲を指定する方法もあります。

let range = startIndex...endIndex
let substringRange = text[range]  // 世界
print(substringRange)  // 出力: "世界"

Deep Dive (掘り下げ)

サブストリングはSwiftの初期バージョンからありますが、安全性と効率の観点で何度か改善されてきました。NSStringから引き継いだAPIも使用可能ですが、String型のAPIの方がSwiftらしく、扱いやすいです。サブストリングは元の文字列のメモリを共有するため、大きな文字列から小さなサブストリングを取り出す際もメモリ効率が良いです。ただし、サブストリングは長時間保持するには向かないため、必要があればStringに変換することを忘れずに。

See Also (関連する情報)

以上がサブストリングの基本的な取り扱い方です。適切に使用すれば、プログラムの柔軟性と効率が上がります。