一个字符串,比如! !! yuahl! !
,我想删除!
和``,当我这样编写代码时
for index in InputName.characters.indices {
if String(InputName[index]) == "" || InputName.substringToIndex(index) == "!" {
InputName.removeAtIndex(index)
}
}
出现以下错误“致命错误:subscript:subRange扩展到字符串末尾“之后,应该怎么做?
8条答案
按热度按时间brqmpdu11#
雨燕5+
4urapxun2#
如果只需要删除两端的字符,则可以使用
stringByTrimmingCharactersInSet(_:)
如果您还需要删除中间的字符,“从过滤输出中重构”会比重复删除单个字符更有效一些。
如果您不介意生成许多中间的String和Array,那么这个单独的liner可以生成预期的输出:
voj3qocg3#
我发现
filter
方法是处理这类事情的一个好方法:f0ofjuux4#
雨燕3
在Swift 3中,语法更好一些。由于旧API的Great Swifification,工厂方法现在被称为
trimmingCharacters(in:)
。同样,你可以将CharacterSet
构造为单字符String
s的Set
:如果字符串中间也有要删除的字符,则可以使用
components(separatedBy:).joined()
:Swift 2版本的H/T @OOPer
mwngjboj5#
注:通过在
String
扩展中增加此函数,最终可以删除字符串中的特定字符。bfhwhh0e6#
6jygbczu7#
你也可以添加这样非常有帮助的扩展:
n1bvdmb68#
您可以使用以下命令:
例如,如果要从10%中删除百分比“%”