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
})