Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.replacingOccurrences() / trimmingCharacters()
Swiftの文字列では『replacingOccurrences(of:with:)』で置換、『trimmingCharacters(in:)』で前後の空白などを除去できます。『components(separatedBy:)』で分割することもできます。
構文
// 文字列の置換
文字列.replacingOccurrences(of: "検索", with: "置換")
// オプション付き置換
文字列.replacingOccurrences(of: "検索", with: "置換",
options: .caseInsensitive)
// 前後の特定文字を除去
文字列.trimmingCharacters(in: .whitespaces)
文字列.trimmingCharacters(in: .whitespacesAndNewlines)
// 区切り文字で分割
文字列.components(separatedBy: "区切り文字")
メソッド一覧
| メソッド | 概要 |
|---|---|
| 文字列.replacingOccurrences(of: with:) | 一致するすべての部分文字列を置換した新しい文字列を返します。 |
| 文字列.replacingOccurrences(of: with: options:) | オプション(大小無視・正規表現等)を指定して置換します。 |
| 文字列.trimmingCharacters(in:) | 文字列の前後から指定した文字セットを除去します。 |
| 文字列.components(separatedBy:) | 文字列を区切り文字で分割し、配列として返します。 |
| 文字列.components(separatedBy: 文字セット) | 文字セット(空白、改行等)で分割します。 |
| CharacterSet.whitespaces | 半角スペースとタブを表す文字セットです。 |
| CharacterSet.whitespacesAndNewlines | 空白文字と改行文字を表す文字セットです。 |
サンプルコード
import Foundation
// replacingOccurrences: 基本的な置換
let text = "Hello, World! Hello, Swift!"
let replaced = text.replacingOccurrences(of: "Hello", with: "Hi")
print(replaced) // Hi, World! Hi, Swift!
// 大文字小文字を無視して置換
let html = "<p>Swift は<BR>シンプルです<br></p>"
let cleaned = html.replacingOccurrences(of: "<br>", with: "\n",
options: .caseInsensitive)
print(cleaned)
// trimmingCharacters: 前後の空白を除去
let padded = " スペースだらけ "
print(padded.trimmingCharacters(in: .whitespaces)) // スペースだらけ
// 改行も除去
let withNewlines = "\n\nテキスト\n\n"
print(withNewlines.trimmingCharacters(in: .whitespacesAndNewlines)) // テキスト
// components: 文字列を分割
let csv = "名前,年齢,都市"
let fields = csv.components(separatedBy: ",")
print(fields) // ["名前", "年齢", "都市"]
// 複数の区切り文字で分割
let messy = "apple;banana,cherry:grape"
let fruits = messy.components(separatedBy: CharacterSet(charactersIn: ";,:"))
print(fruits) // ["apple", "banana", "cherry", "grape"]
// 実践例:HTMLタグの除去
let inputHTML = "<b>太字</b>と<i>斜体</i>"
// 簡易版(正確なHTML除去は正規表現が必要)
var stripped = inputHTML
["<b>", "</b>", "<i>", "</i>"].forEach { tag in
stripped = stripped.replacingOccurrences(of: tag, with: "")
}
print(stripped) // 太字と斜体
概要
『replacingOccurrences(of:with:)』は一致するすべての箇所を置換します。特定の範囲だけ置換したい場合は『range(of:)』で範囲を取得してから『replaceSubrange(_:with:)』を使います。
『trimmingCharacters(in:)』は文字列の前後のみに適用されます。中間の文字を除去したい場合は『replacingOccurrences』を使います。Foundationのメソッド(replacingOccurrences等)を使う場合は『import Foundation』が必要です。
文字列の分割・結合については文字列.split() / joined() / 文字列インデックスを参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。