从未知长度的字符串SWIFT中删除一个单词

时间:2016-11-26 12:35:38

标签: swift swift3

我正在尝试从字符串的未知长度中删除一个单词,这是我的代码。

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,因为它的用户按钮选择。

2 个答案:

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