鉴于Go字符串是unicode,有没有办法安全地确定字符(例如字符串中的第一个字母)是字母还是数字?在过去,我只会检查ASCII字符范围,但我怀疑使用unicode字符串会非常可靠。
答案 0 :(得分:5)
您始终可以在unicode
包中使用func IsNumber(r rune) bool
:
if unicode.IsNumber(rune) { ... }
请注意,这包括的字符数不仅仅是0-9,例如罗马数字(例如.Ⅲ)或分数(例如⅒)。如果您特别想要检查0-9,那么您应该像过去那样做(是的,它是UTF-8安全的):
if rune >= 48 && rune <= 57 { ... }
或
if rune >= '0' && rune <= '9' { ... } // as suggested by Martin Gallagher
对于字母,unicode包具有类似的功能:func IsLetter(r rune) bool