【问题标题】:How to extract end code value from given strings如何从给定的字符串中提取结束代码值
【发布时间】: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

它有效,但我觉得不是一个理想的解决方案。

如何优化上述代码?

【问题讨论】:

    标签: ios swift string nsstring


    【解决方案1】:
    extension String {
        func separateCharacters(separator: Character) -> [String] {
            return self.split { $0 == separator }.map(String.init)
        }
    }
    

    用法:

    print("JOB-ABC-BJ-212-12340012".separateCharacters(separator: "-").last) // Optional("12340012")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      相关资源
      最近更新 更多