【发布时间】:2017-06-28 13:34:36
【问题描述】:
我想删除所有出现的 char == 。在一个字符串中,除了最后一个。
例如:
1.2.3.4
应该变成:
123.4
【问题讨论】:
-
是的,顺序相同@JD。
我想删除所有出现的 char == 。在一个字符串中,除了最后一个。
例如:
1.2.3.4
应该变成:
123.4
【问题讨论】:
例子:
var str = "1.2.3.4"
if let idx = str.range(of: ".", options: .backwards) {
str = str.replacingOccurrences(of: ".", with: "", range: str.startIndex..<idx.lowerBound)
}
print(str) // 123.4
【讨论】:
这是示例代码。按您的角色拆分,将该角色添加到最后一个元素的开头,然后将它们重新加入
let str = "1.2.3.4"
var array = str.components(separatedBy: ".")
if array.count >= 1 {
array[array.count - 1] = "." + array[array.count - 1]
}
print(array.joined(separator: ""))
【讨论】:
您可以将此 eailt 作为 String 的扩展重用。
public extension String {
func stringByReplacingAllButLastOccurrenceOfString(target: String, withString replaceString: String) -> String {
if let idx = self.rangeOfString(target, options: .BackwardsSearch) {
return self.stringByReplacingOccurrencesOfString(target, withString: replaceString, range: self.startIndex..<idx.first!)
}
return self
}
}
运行几个场景,你会得到:
strResult = "1.2.3.4.5".stringByReplacingAllButLastOccurrenceOfString(".", withString: "")
// result "1234.5"
strResult = "1234.5".stringByReplacingAllButLastOccurrenceOfString(".", withString: "")
// result "1234.5"
strResult = "1.23.4.5".stringByReplacingAllButLastOccurrenceOfString(".", withString: "")
// result "1234.5"
strResult = "1234.5".stringByReplacingAllButLastOccurrenceOfString(".", withString: "")
// result "1234.5"
strResult = "12345".stringByReplacingAllButLastOccurrenceOfString(".", withString: "")
// result "12345"
【讨论】: