鉴于 Go 字符串是 unicode,有没有办法安全地确定一个字符(例如字符串中的第一个字母)是字母还是数字?过去我只会检查 ASCII 字符范围,但我怀疑这对 unicode 字符串是否可靠。
最佳答案
您可以随时使用 func IsNumber(r rune) bool
在 unicode
包中:
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
关于string - 判断一个字符是字母还是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20905750/