为了账号安全,请及时绑定邮箱和手机立即绑定

比较 Go 中不等长的字符串

比较 Go 中不等长的字符串

Go
qq_花开花谢_0 2021-12-07 19:37:22
当我在Go中比较以下不等长的字符串时,比较的结果是不对的。有人可以帮忙吗?i := "1206410694"j := "128000000"fmt.Println("result is", i >= j, i, j )输出是:result is false 1206410694 128000000原因可能是因为 Go 从最重要的字符开始逐字符比较。在我的例子中,这些字符串代表数字,所以 i 大于 j。所以只是想知道是否有人可以帮助解释如何在 go 中比较不等长的字符串。
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

原因可能是因为 Go 从最重要的字符开始逐字符比较。

这是对的。

如果它们代表数字,那么您应该将它们作为数字进行比较。int在比较之前解析/转换它们:

ii, _ := strconv.Atoi(i)
ij, _ := strconv.Atoi(j)

编辑:是的,@JimB 是完全正确的。如果您不是 100% 确定转换会成功,请不要忽略错误。


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信