Int到非可选字符串

时间:2017-01-19 05:39:37

标签: swift

我有一个字符串00012。我需要从中创建一个字符串12。然后通过将字符串连接到名称来加载UIImage。 所以我做了以下

let myString = "00012"
let myInt = Int(myString)
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)

问题是(myInt)返回一个可选项。我没有imageName = name_12,我得到imageName = name_optional(12)

如何摆脱选择?

我无法从初始字符串中修剪前3个零,因为数字可以是00001

2 个答案:

答案 0 :(得分:0)

使用可选绑定:

let myString = "00012"
if let myInt = Int(myString) {
  let imageName = "name_\(myInt)"
  let image = UIImage(named: imageName)
}

或者使用正则表达式:

let myString = "00012"
let myStringWithoutLeadingZeros = myString.replacingOccurrences(of: "^0+", with: "", options: .regularExpression)
let imageName = "name_" + myStringWithoutLeadingZeros
let image = UIImage(named: imageName)

答案 1 :(得分:0)

您可以直接打开该值

let myString = "00012"
let myInt = Int(myString)! // unwrapping 
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)

或者您可以使用可选绑定

let myString = "00012"
if let myInt = Int(myString) { // Optional binding
    let imageName = "name_\(myInt)"
    let image = UIImage(named: imageName)
}