If you want to replace characters on Swift String? You can use replacingOccurrences()
1 2 | <span class="kwd">let</span><span class="pln"> aString </span><span class="pun">=</span> <span class="str">"This is my string"</span> <span class="kwd">let</span><span class="pln"> newString </span><span class="pun">=</span><span class="pln"> aString</span><span class="pun">.</span><span class="pln">replacingOccurrences</span><span class="pun">(</span><span class="pln">of</span><span class="pun">:</span> <span class="str">" "</span><span class="pun">,</span><span class="pln"> with</span><span class="pun">:</span> <span class="str">"+"</span><span class="pun">,</span><span class="pln"> options</span><span class="pun">:</span> <span class="pun">.</span><span class="pln">literal</span><span class="pun">,</span><span class="pln"> range</span><span class="pun">:</span> <span class="lit">nil</span><span class="pun">)</span> |
And as noted by @cprcrack below, the
options
and range
parameters are optional, so if you don’t want to specify string comparison options or a range to do the replacement within, you only need the following.1 2 | <span class="kwd">let</span><span class="pln"> aString </span><span class="pun">=</span> <span class="str">"This is my string"</span> <span class="kwd">let</span><span class="pln"> newString </span><span class="pun">=</span><span class="pln"> aString</span><span class="pun">.</span><span class="pln">replacingOccurrences</span><span class="pun">(</span><span class="pln">of</span><span class="pun">:</span> <span class="str">" "</span><span class="pun">,</span><span class="pln"> with</span><span class="pun">:</span> <span class="str">"+"</span><span class="pun">)</span> |
Or, if the data is in a specific format like this, where you’re just replacing separation characters, you can use
components()
to break the string into and array, and then you can use the join()
function to put them back to together with a specified separator.1 2 | <span class="kwd">let</span><span class="pln"> toArray </span><span class="pun">=</span><span class="pln"> aString</span><span class="pun">.</span><span class="pln">components</span><span class="pun">(</span><span class="pln">separatedBy</span><span class="pun">:</span> <span class="str">" "</span><span class="pun">)</span> <span class="kwd">let</span><span class="pln"> backToString </span><span class="pun">=</span><span class="pln"> toArray</span><span class="pun">.</span><span class="pln">joined</span><span class="pun">(</span><span class="pln">separator</span><span class="pun">:</span> <span class="str">"+"</span><span class="pun">)</span> |
Or if you’re looking for a more Swifty solution that doesn’t utilize API from NSString, you could use this.
1 2 3 4 5 | <span class="kwd">let</span><span class="pln"> aString </span><span class="pun">=</span> <span class="str">"Some search text"</span> <span class="kwd">let</span><span class="pln"> replaced </span><span class="pun">=</span> <span class="typ">String</span><span class="pun">(</span><span class="pln">aString</span><span class="pun">.</span><span class="pln">map </span><span class="pun">{</span><span class="pln"> $</span><span class="lit">0</span> <span class="pun">==</span> <span class="str">" "</span> <span class="pun">?</span> <span class="str">"+"</span> <span class="pun">:</span><span class="pln"> $</span><span class="lit">0</span> <span class="pun">})</span> |