gpt4 book ai didi

string - 你如何检查一个字符串是否是 Swift 中的有效 double

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

比如说你有:

var possibleDouble = Double("0.") 

possibleDouble 的计算结果为 Optional(0.0)

在我的例子中,"0." 不是有效的 Double,所以 possibleDouble 应该是 nil。有没有一种聪明的方法来检查 "0." 或这种形式的东西不是有效的 Double。

编辑:有效数字(无论是 IntDoubleFloat 还是 Decimal)只能是格式N.N 或 N,其中 N 是某个数字。句点前后可以有一个或多个数字。

最佳答案

您可以扩展 Double 添加新的自定义初始化程序

extension Double {
init?(myCustomFormat:String) {
guard let
standardDouble = Double(myCustomFormat),
firstChar: Character? = myCustomFormat.characters.first,
lastChar: Character? = myCustomFormat.characters.last
where firstChar != "." && lastChar != "."
else { return nil }
self = standardDouble
}
}

只有在以下情况下,此初始化程序才会创建 Double:

  1. 内置的初始化器确实成功了,最后一个
  2. 输入的 String 的第一个字符不是 "."
  3. 输入的 String 的最后一个字符不是 "."

例子

Double(myCustomFormat:"1.") // nil
Double(myCustomFormat:".1") // nil
Double(myCustomFormat:"Hello") // nil
Double(myCustomFormat:"1.1") // 1.1
Double(myCustomFormat:"1") // 1

关于string - 你如何检查一个字符串是否是 Swift 中的有效 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37309793/

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