比较 Go 中不等长的字符串

当我在Go中比较以下不等长的字符串时,比较的结果是不对的。有人可以帮忙吗?


i := "1206410694"

j := "128000000"

fmt.Println("result is", i >= j, i, j )

输出是:


result is false 1206410694 128000000

原因可能是因为 Go 从最重要的字符开始逐字符比较。在我的例子中,这些字符串代表数字,所以 i 大于 j。所以只是想知道是否有人可以帮助解释如何在 go 中比较不等长的字符串。


qq_花开花谢_0
浏览 174回答 1
1回答

慕码人2483693

原因可能是因为 Go 从最重要的字符开始逐字符比较。这是对的。如果它们代表数字,那么您应该将它们作为数字进行比较。int在比较之前解析/转换它们:ii, _ := strconv.Atoi(i) ij, _ := strconv.Atoi(j)编辑:是的,@JimB 是完全正确的。如果您不是 100% 确定转换会成功,请不要忽略错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go