gpt4 book ai didi

ios - 我可以直接在 Swift 中比较数字和字符串格式吗?

转载 作者:行者123 更新时间:2023-11-29 01:48:12 25 4
gpt4 key购买 nike

我发现我可以直接在 Swift 中比较两个字符串格式的数字。

最初,我试图将我的 String 格式数字转换为 double 或 Int,然后进行比较。当我无意中发现我可以直接比较它们时,我在我的 Playground 上做了一些测试。看起来结果都是正确的,即使数字是空字符串或“(Double)”与“(Int)”。
(异常(exception)):String格式的负数的测试用例会比较失败。

有谁知道这是否是 Swift String 中的默认行为?我不确定我是否可以在我的程序中使用它。

例子:

var numStrs1 = ["15", "12.2", "15", ""]
var numStrs2 = ["13", "12", "", "23.0"]

func compareNumStr(numStr1:String, numStr2:String) -> Bool {
return numStr1 > numStr2
}

for var i = 0; i < numStrs1.count; ++i{
compareNumStr(numStrs1[i], numStrs2[i])
}

最佳答案

字符串比较的默认实现依赖于Unicode排序算法来源:http://oleb.net/blog/2014/07/swift-strings/

您现在进行的比较不是规范的 Int/Double 比较,而是它如何转换为 unicode。根据您希望如何使用该信息,它可能并不适合所有情况。就像你发现负数一样,你应该使用 .toInt 方法来获取你想要的数字,并比较整数而不是比较字符串。

关于ios - 我可以直接在 Swift 中比较数字和字符串格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684260/

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