gpt4 book ai didi

swift - 两个字符范围内的子字符串

转载 作者:行者123 更新时间:2023-11-28 10:13:25 24 4
gpt4 key购买 nike

我正在尝试将时间显示字符串转换为 Int。语法如下所示,我想提取整数并将第一个整数相乘,然后将第二个整数相加以获得以分钟为单位的时间。

12h 10m
3h 14m
16h 0m

因为显示的字符串可以是 hhmm、hmm、hhm 或 hm,所以我不能用固定的偏移量作为子字符串。我试图通过首先找到“”然后找到 m 来对字符串进行子字符串化。在其他语言中,这很容易,但出于某些原因,我无法让它快速工作。

请帮助我,你是我唯一的希望。

最佳答案

您可以使用 components(separated:) 获取时间组成部分(小时和分钟)并获取第一个组成部分(小时),将其乘以 60 并添加最后一个组成部分(分钟)。

extension String {
var minutes: Int {
var minutes = 0
if let hourChars = components(separatedBy: " ").first?.characters.dropLast(),
let hours = Int(String(hourChars)) {
minutes += hours * 60
}
if let minChars = components(separatedBy: " ").last?.characters.dropLast(),
let mins = Int(String(minChars)) {
minutes += mins
}
return minutes
}
}

测试


let str1 = "12h 10m"
let minutes1 = str1.minutes // 730

let str2 = "3h 14m"
let minutes2 = str2.minutes // 194

let str3 = "16h 0m"
let minutes3 = str3.minutes // 960

关于swift - 两个字符范围内的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45033542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com