I am trying to convert the string:
let time = \"7:30\"
to integers:
let hour : Int = 7
let minutes : Int = 30
Use String.componentsSeparatedByString
to split time
string to parts:
import Foundation
let time = "7:30"
let timeParts = time.componentsSeparatedByString(":")
if timeParts.count == 2 {
if let hour = Int(timeParts[0]),
let minute = Int(timeParts[1]) {
// use hour and minute
}
}
If you do not want to import Foundation
you can split time string to parts with:
let timeParts = time.characters.split(":").map(String.init)
You can split string by :
character and then convert results to Int:
let timeStringArray = time.componentsSeparatedByString(":")
if timeStringArray.count == 2 {
hour = timeStringArray[0].toInt
minutes = timeStringArray[1].toInt()
}
Answers by @alex_p and @mixel are correct, but it's also possible to do it with Swift split
function:
let time = "7:30"
let components = time.characters.split { $0 == ":" } .map { (x) -> Int in return Int(String(x))! }
let hours = components[0]
let minutes = components[1]