1. ホーム
  2. go

[解決済み] 文字列がint型かどうかチェックする

2023-02-13 15:33:23

質問

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"

どのように解決するのですか?

おっしゃるとおり、strconv.Atoiを使用するとよいでしょう。

if _, err := strconv.Atoi(v); err == nil {
    fmt.Printf("%q looks like a number.\n", v)
}

を使うことができます。 scanner.Scanner から text/scanner ) をモード ScanInts とするか、正規表現を用いて文字列の検証を行いますが Atoi はその仕事に適したツールです。