2017-12-29 9 views
1

で進数を表す場合、どのように確認するためには、これは主に動作します:文字列が行く

import "encoding/hex" 

func isHexString(s string) bool { 
    _, err := hex.DecodeString(s) 
    return err == nil 
} 

しかし、我々はまた、奇数長さの六角文字列をサポートすることをお勧めします。 hex.ErrLengthに対するチェックは、文字列に16進数文字が含まれているかどうかに先行しているため、このエラーが発生しないため動作しません。私は文字列を適切な数の文字を含むように操作し、両方のチェックを適用することができますが、それはより良い方法があるように思われる。

https://golang.org/pkg/encoding/hex/#DecodeString

答えて

3

あなたの目標はstrconv.ParseIntまたはstrconv.ParseUintを呼び出して、整数または符号なし整数として進数を解析する場合:

n, err := strconv.ParseUint(s, 16, 64) 
if err != nil { 
    // s is not a valid 
} 
関連する問題