文字列が数値かどうかの判定方法は?
strconvパッケージによって提供されている関数は、文字列が数値であるかどうかを判断するためにGo言語で使用できます。
手順は以下のとおりです。
- strconvをインポートする
- _, err = strconv.ParseInt(str, 10, 0)
- 数値文字列の場合、変換に成功した場合はerrにnilが入ります。数値文字列ではない場合、変換に失敗した場合はerrにnil以外が入ります。
- errの値を判定し、errがnilであればその文字列は数値である。errがnilでない場合は、その文字列は数値ではない。
以下にサンプルコードを示します。
import (
"fmt"
"strconv"
)
func isNumber(str string) bool {
_, err := strconv.Atoi(str)
if err != nil {
return false
}
return true
}
func main() {
str1 := "123"
str2 := "abc"
fmt.Printf("%s is number? %v\n", str1, isNumber(str1))
fmt.Printf("%s is number? %v\n", str2, isNumber(str2))
}
彼女が来てくれてうれしいです。
123 is number? true
abc is number? false
そのうち、str1は正常な整数なので、結果はtrue。str2は正常な整数ではないので、結果はfalse。