猿问

检查字符串是否为 int

如何在 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"


胡说叔叔
浏览 272回答 3
3回答

侃侃尔雅

正如您所说,您可以为此使用 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是适合该工作的工具。

慕沐林林

这更好,您可以检查最多 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

您可以使用unicode.IsDigit():import "unicode"func isInt(s string) bool {    for _, c := range s {        if !unicode.IsDigit(c) {            return false        }    }    return true}
随时随地看视频慕课网APP

相关分类

Go
我要回答