如何在 Go 中检查字符串值是否为整数?就像是v := "4"if isInt(v) { fmt.Println("We have an int, we can safely cast this with strconv")}注意:我知道这会strconv.Atoi返回错误,但是还有其他函数可以执行此操作吗?的问题strconv.Atoi是,它会返回7的"a7"
3 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
正如您所说,您可以为此使用 strconv.Atoi 。
if _, err := strconv.Atoi(v); err == nil {
fmt.Printf("%q looks like a number.\n", v)
}
您可以在 mode 中使用scanner.Scanner(from text/scanner) ScanInts,或者使用正则表达式来验证字符串,但它Atoi是适合该工作的工具。
慕沐林林
TA贡献2016条经验 获得超9个赞
这更好,您可以检查最多 64(或更少)位的整数
strconv.Atoi 仅支持 32 位
if _, err := strconv.ParseInt(v,10,64); err == nil {
fmt.Printf("%q looks like a number.\n", v)
}
试试 v := "12345678900123456789"
DIEA
TA贡献1820条经验 获得超2个赞
您可以使用unicode.IsDigit():
import "unicode"
func isInt(s string) bool {
for _, c := range s {
if !unicode.IsDigit(c) {
return false
}
}
return true
}
- 3 回答
- 0 关注
- 271 浏览
添加回答
举报
0/150
提交
取消