gpt4 book ai didi

Swift-y 解析整数前缀字符串的方法,如 NSString

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

考虑以下几点:

Int("30 minutes") // nil
("30 minutes" as NSString).integerValue // 30

30 分钟 开始 30 的更 Swift-y 方法是什么?

请记住,它可能是 30mins30\tminudos30 मिनट

NSString 方法很方便,因为它的行为类似于 JavaScript - 一直解析到第一个非整数字符。

更新 注意:就像在 JS parseInt 函数中一样,如果我的字符串有更多的数字超出字符串字符,例如30mins3,然后转换为 NSString 仅返回第一个字符,例如

("30mins3" as NSString).integerValue // 30

最佳答案

您可以创建以下函数来查找第一个非数字,然后生成直到该字符的部分的子字符串并将其转换为 int

extension String {
func integerValue() -> Int? {
if let index = self.firstIndex(where: {!$0.isNumber && $0.isASCII}) {
return Int(self.prefix(upTo: index))
}
return nil
}
}

或者使用prefix(while:)

extension String {
func integerValue() -> Int? {
return Int(self.prefix(while: {$0.isNumber && $0.isASCII}))
}
}

例子

let strings = ["30 minutes", "30min3", "gfd"]
for str in strings {
if let number = str.integerValue() {
print(number)
}
}

输出

30
30

关于Swift-y 解析整数前缀字符串的方法,如 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58370017/

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