Вы можете использовать replacingOccurrences
, который заменит ваш символ пробелами только на этот символ.Для этого вы можете использовать рекурсивный метод
func removed(in text: String) -> String {
let symbols = ["/", ",", ":", ";", "-", "."]
var newText = text
symbols.forEach { newText = replaced(in: newText, for: $0) }
return newText
}
func replaced(in text: String, for symbol: String) -> String {
var newText = text
let left = " \(symbol)"
newText = newText.replacingOccurrences(of: left, with: symbol)
let right = "\(symbol) "
newText = newText.replacingOccurrences(of: right, with: symbol)
return newText != text ? replaced(in: newText, for: symbol) : newText
}
Использование:
let string = "Apple / Orange Swift . ObjC Moon : Sun USA - UK"
print(removed(in: string))
Apple/Orange Swift.ObjC Moon:Sun USA-UK