【发布时间】:2017-11-06 19:34:29
【问题描述】:
我有一个字符串,例如“00123456”,我想在字符串“123456”中包含前导零。
我找到了用于 Objective-C 的 severalexamples,但不确定使用 Swift 3 的最佳方法。
谢谢
【问题讨论】:
-
好问题!此外,要检查这一点,您必须使用 async.main 队列中的 CPU 时间来证明
标签: swift3 substring leading-zero
我有一个字符串,例如“00123456”,我想在字符串“123456”中包含前导零。
我找到了用于 Objective-C 的 severalexamples,但不确定使用 Swift 3 的最佳方法。
谢谢
【问题讨论】:
标签: swift3 substring leading-zero
你可以用正则表达式做到这一点
let string = "00123456"
let trimmedString = string.replacingOccurrences(of: "^0+", with: "", options: .regularExpression)
好处是没有双重转换,也没有强制展开。
【讨论】:
只需将字符串转换为 int,然后再转换回字符串。它将删除前导零。
let numberString = "00123456"
let numberAsInt = Int(numberString)
let backToString = "\(numberAsInt!)"
结果:“123456”
【讨论】:
首先,创建 Validator 然后在任何类中使用它。 这是一个例子,它有效:) 这是swift 4.0
class PhoneNumberExcludeZeroValidator {
func validate(_ value: String) -> String {
var subscriberNumber = value
let prefixCase = "0"
if subscriberNumber.hasPrefix(prefixCase) {
subscriberNumber.remove(at: subscriberNumber.startIndex)
}
return subscriberNumber
}
}
使用示例:
if let countryCallingCode = countryCallingCodeTextField.text, var subscriberNumber = phoneNumberTextField.text {
subscriberNumber = PhoneNumberExcludeZeroValidator().validate(subscriberNumber)
let phoneNumber = "\(countryCallingCode)\(subscriberNumber)"
registerUserWith(phoneNumber: phoneNumber)
}
【讨论】:
let number = "\(String(describing: Int(text)!))"
【讨论】:
"\(Int(text)!)" 或String(Int(text)!)?使用字符串插值从字符串创建字符串是多余的。