比较Go中不等长的字符串

时间:2016-02-08 18:48:50

标签: string go comparison

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

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

输出结果为:

result is false 1206410694 128000000

原因可能是因为Go通过char比较从最重要的char开始进行char。在我的情况下,这些字符串代表数字,所以我大于j。所以只是想知道是否有人可以帮助解释如何在go中比较长度不相等的字符串。

1 个答案:

答案 0 :(得分:4)

  

原因可能是因为Go通过char比较从最重要的char开始进行char。

这是正确的。

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

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

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