Swift 文字列の文字を置き換える方法はありますか? 質問する

Swift 文字列の文字を置き換える方法はありますか? 質問する

Swift で文字を置き換える方法を探していますString

例: 「これは私の文字列です」

「 」を「+」に置き換えて、「This+is+my+string」にしたいと思います。

どうすればこれを実現できるでしょうか?

ベストアンサー1

この回答は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 が述べているように、optionsおよびrangeパラメータはオプションであるため、文字列比較オプションや置換を実行する範囲を指定しない場合は、次のものだけが必要です。

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 を利用しない、より Swift 的なソリューションを探している場合は、これを使用できます。

let aString = "Some search text"

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

おすすめ記事