当我在Go中比较以下不等长的字符串时,比较结果不正确。有人可以帮忙吗?
i := "1206410694"
j := "128000000"
fmt.Println("result is", i >= j, i, j )
输出结果为:
result is false 1206410694 128000000
原因可能是因为Go通过char比较从最重要的char开始进行char。在我的情况下,这些字符串代表数字,所以我大于j。所以只是想知道是否有人可以帮助解释如何在go中比较长度不相等的字符串。
答案 0 :(得分:4)
原因可能是因为Go通过char比较从最重要的char开始进行char。
这是正确的。
如果它们代表数字,那么你应该将它们作为数字进行比较。在比较之前将它们解析/转换为int
:
ii, _ := strconv.Atoi(i)
ij, _ := strconv.Atoi(j)
编辑:是的,@ JinB完全正确。如果您不能100%确定转换是否成功,请不要忽略错误。