Swiftで文字列を置換する2つの方法!

swift

Swiftで文字列を置換する方法について書いています。
文字列からreplaceメソッドまたはreplacingOccurrencesメソッドを呼ぶことで置換することができます。

サンプルコードは、Swiftバージョン5.7で検証しています。

replaceメソッドで置換する

文字列からreplaceメソッドを呼ぶことで、置換することができます。
例えば、下記のように使うことができます。

var ppapText = "pen pineapple apple pen!"

ppapText.replace("pen", with: "grape")
print(ppapText) // grape pineapple apple grape!

最初にppapText変数に文字列の「pen pineapple apple pen!」を入れています。

その次の処理で、ppapText変数からreplaceメソッドを呼び出しています。
第1引数に渡しているのが、置換したい検索文字です。(“pen”)
第2引数(with)に渡しているのは、置換する文字列です。(“grape”)

処理を実行して、print関数で出力すると「grape pineapple apple grape!」と置換されていることが確認できました。

置換回数を指定する

置換する回数を指定することもできます。
回数を指定したいときには、名前付き引数のmaxReplacementsに置換回数を指定します。

var fruits = "apple grape apple grape apple banana!"

fruits.replace("apple", with: "orange", maxReplacements:2)
print(fruits)

fruits変数に文字列の「apple grape apple grape apple banana!」を入れて、次の処理で置換しています。
「”apple”」を「”orange”」に置換しています。

置換する回数をmaxReplacementsに指定しています。
「2」を指定しているので、置換されるのは最初にみつかった2つです。

実行して、fruits変数をprint関数で出力すると「orange grape orange grape apple banana!」と置換されました。
最初の2つの「apple」だけが置換されました。

replacingOccurrencesメソッドで置換する

文字列からreplacingOccurrencesメソッドを呼ぶことでも、同じように置換することができます。
例えば、下記のように使います。

let ppapText = "pen pineapple apple pen!"
let gpagText = ppapText.replacingOccurrences(of: "pen", with: "grape")

print(gpagText) // grape pineapple apple grape!

最初にppapText変数に対して、文字列の「pen pineapple apple pen!」を代入しています。
次の処理で、replacingOccurrencesメソッドを使って置換しています。

名前付き引数のofに検索する文字列を指定して、withに置換文字列を指定します。
置換した結果をgpagText変数で受け取っています。

このようにreplaceメソッドと違って、変数の中身を変えるのではなく、replacingOccurrencesでは置換結果を返してくれます。
実行して出力すると、「grape pineapple apple grape!」になりました。
対象の文字が置換されています。

replacingメソッドで正規表現を使って置換する

最後に正規表現を使って、置換する方法です。
正規表現を使って置換するときには、文字列からreplacingメソッドを呼び出して置換します。

例えば、下記のように置換することができます。

let text = "123 123 123 Test!!"
let result = text.replacing(/[0-9]+/, with: "hoge")

print(result) // hoge hoge hoge Test!!

最初にtext変数に文字列の「123 123 123 Test!!」を代入しています。
次の処理で、text変数からreplacingメソッドを呼び出しています。

第1引数に渡しているのが、置換対象を検索する正規表現です。
withに渡しているのが置換文字列になります。

結果をresult変数で受け取って置換すると、「hoge hoge hoge Test!!」となりました。
正規表現で指定した数値の箇所を対象にして、置換されたことが確認できました。

Swiftで文字列を置換する方法まとめ

今回はSwiftで文字列を置換する方法を書きました。
記事の内容をまとめると、下記のようになります。

・replaceメソッドで置換することができる。第1引数に検索文字列、withに置換文字列を指定する。
・replacingOccurrencesメソッドでも置換できる。ofに検索文字列、withに置換文字列を指定する。
・replacingを使うことで、正規表現を使って置換することができた。

コメント

タイトルとURLをコピーしました