将日期字符串转换为整数 Swift

4

我可以帮助您翻译以下内容:

我正在尝试转换字符串:

let time = "7:30"

转换成整数:

let hour : Int = 7
let minutes : Int = 30

我目前正在循环遍历这个字符串:

for char in time.characters {
}

但我不知道如何将字符转换为整数。非常感谢您的帮助。
3个回答

5
使用String.componentsSeparatedByStringtime字符串分成多个部分:
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
    }
}

如果您不想 import Foundation,您可以使用以下方法将时间字符串拆分为部分:

let timeParts = time.characters.split(":").map(String.init)

5

@alex_p和@mixel的答案是正确的,但也可以使用Swift的split函数来实现:

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]

这似乎是更符合“Swift风格”的答案。 - Nicolas Miari
这就是我最终使用的。谢谢! - brl214
好的解决方案! - Matrosov Oleksandr
简单而优雅!我在我的项目中添加了 let seconds = components[2],以便使用我所需的秒数。 - David_2877

1
你可以通过:字符来分割字符串,然后将结果转换为整数:
let timeStringArray = time.componentsSeparatedByString(":")
if timeStringArray.count == 2 {
   hour = timeStringArray[0].toInt
   minutes = timeStringArray[1].toInt()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接