1. ホーム
  2. スイフト

[解決済み】Swift Stringの文字を置換する方法はありますか?

2022-05-01 10:26:49

質問

Swift の文字列を置換する方法を探しています。 String .

例:"これは私の文字列です"。

"を"+"に置き換えて、"This+is+my+string"としたいのですが、どうすればいいですか?

どうすれば実現できますか?

どのように解決するのですか?

この回答は Swift 4 & 5 用に更新されました。 . まだ Swift 1, 2, 3 を使っている場合は、リビジョン履歴を参照してください。

いくつかのオプションがあります。それは jaumard が提案したように を使用し replacingOccurrences()

let aString = "This is my string"
let newString = aString.replacingOccurrences(of: " ", with: "+", options: .literal, range: nil)

また、下記の @cprcrack さんの指摘にあるように optionsrange パラメータはオプションであるため、文字列比較オプションや置換を行う範囲を指定しない場合は、以下だけでよい。

let aString = "This is my string"
let newString = aString.replacingOccurrences(of: " ", with: "+")

また、このように特定の形式のデータで、区切り文字を置き換えるだけの場合は components() で文字列を配列に分解し、その後に join() 関数を使って、指定した区切り文字で元に戻すことができます。

let toArray = aString.components(separatedBy: " ")
let backToString = toArray.joined(separator: "+")

また、NSStringからのAPIを利用しない、よりSwiftyなソリューションを探しているのであれば、これを利用することも可能だ。

let aString = "Some search text"

let replaced = String(aString.map {
    $0 == " " ? "+" : $0
})