我正在尝试从字符串的未知长度中删除一个单词,这是我的代码。
if (newService.range(of: serviceStr) != nil){
// I should remove selected word here
print("remove selected")
}else{
print("add select")
let space = " , "
newService = newService + space + serviceStr
}
我已经尝试了很多方法,但是,每个代码都应该指定我不知道的offsetBy,因为它的用户按钮选择。
答案 0 :(得分:12)
你可以写
import Foundation
var sentence = "This is a simple sentence"
let wordToRemove = "simple"
if let range = sentence.range(of: wordToRemove) {
sentence.removeSubrange(range)
}
print(sentence) // This is a sentence
如果您还想在简单单词替换此
后删除额外空格let wordToRemove = "simple"
用这个
let wordToRemove = "simple "
答案 1 :(得分:0)
如果您只需要移除serviceStr
:
if let range = newService.range(of: serviceStr) {
print("remove selected")
newService.removeSubrange(range)
} else {
print("add select")
newService += " , " + serviceStr
}
但是如果你需要添加或删除一个分隔符,它会更加棘手,特别是你编写它的方式:通过连接一个逗号,你最终也不会得到你的第一个服务,也可以从一开始的逗号开始字符串?
以下是获得干净逗号支持的建议:
let space = " , "
if let range = newService.range(of: serviceStr) {
print("remove selected")
newService.removeSubrange(range)
newService = newService.components(separatedBy: space).filter({ !$0.isEmpty }).joined(separator: space)
} else {
print("add select")
var components = newService.components(separatedBy: space)
components.append(serviceStr)
newService = components.joined(separator: space)
}