【发布时间】:2021-12-04 01:26:15
【问题描述】:
如何获取字符串的最后一个代码值
Emp-Code-001 //Result 001
Sub-000123 //Result 000123
JOB-ABC-BJ-212-0012 //Result 0012
如何从给定的字符串中提取代码编号的结束值。
我做了什么:
func truncateHyphens(id: String){
let finalString = id
var trucatedString =id
let substringToLastIndexOfChar = trucatedString.lastIndexOfCharacter("-") ?? 0
let otherRange = trucatedString.index(trucatedString.startIndex, offsetBy: substringToLastIndexOfChar + 1)..<trucatedString.endIndex
trucatedString.removeSubrange(otherRange)
print(finalString.replacingOccurrences(of: trucatedString, with: ""))
}
public extension String {
func lastIndexOfCharacter(_ c: Character) -> Int? {
guard let index = range(of: String(c), options: .backwards)?.lowerBound else
{ return nil }
return distance(from: startIndex, to: index)
}
}
self.truncateHyphens(id: "JOB-ABC-BJ-212-12340012") // Result 12340012
它有效,但我觉得不是一个理想的解决方案。
如何优化上述代码?
【问题讨论】: