这主要有效:
import "encoding/hex"
func isHexString(s string) bool {
_, err := hex.DecodeString(s)
return err == nil
}
但是,我们也可能想要支持奇数长度的十六进制字符串。检查hex.ErrLength不起作用,因为此错误在字符串是否包含十六进制字符之前。我想可以操纵字符串来包含适当数量的字符并应用两个检查,但似乎应该有更好的方法。
答案 0 :(得分:5)
如果您的目标是将十六进制数字解析为整数或无符号整数,请调用strconv.ParseInt或strconv.ParseUint:
n, err := strconv.ParseUint(s, 16, 64)
if err != nil {
// s is not a valid
}