从Swift 3字符串中删除前导零的最有效方法

Jaz*_*ine 2 substring leading-zero swift3

我有一个字符串,如"00123456",我希望在字符串"123456"中删除前导零.

我找到了几个 Objective-C的例子,但不确定使用Swift 3的最佳方法.

谢谢

vad*_*ian 13

你可以用正则表达式做到这一点

let string = "00123456"
let trimmedString = string.replacingOccurrences(of: "^0+", with: "", options: .regularExpression)
Run Code Online (Sandbox Code Playgroud)

好处是没有双重转换,也没有力量展开.


liv*_*tay 6

只需将字符串转换为int,然后再将其转换回字符串即可.它将删除前导零.

let numberString = "00123456"
let numberAsInt = Int(numberString)
let backToString = "\(numberAsInt!)"
Run Code Online (Sandbox Code Playgroud)

结果:"123456"

  • 这里要小心强制展开:确保字符串不为空(“”),即带有保护语句。否则这段代码将会崩溃。 (2认同)
  • 如果结果数字太大,则会失败。 (2认同)
  • 为什么这被标记为正确,这显然不是正确的类型安全决定。 (2认同)