如何在 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 關注
- 325 瀏覽
添加回答
舉報
0/150
提交
取消