string - 判断一个字符是字母还是数字

标签 string go unicode-string

鉴于 Go 字符串是 unicode,有没有办法安全地确定一个字符(例如字符串中的第一个字母)是字母还是数字?过去我只会检查 ASCII 字符范围,但我怀疑这对 unicode 字符串是否可靠。

最佳答案

您可以随时使用 func IsNumber(r rune) boolunicode 包中:

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/

相关文章:

unicode - 通过 FTP 将 ANSI 字符串写入 Unicode 文件

java - 删除 Java String 的格式,同时保留重音字符

javascript - 在 Javascript 中是否有一个函数返回给定字符串出现的次数?

c++ - 在 C++ 中作为字符串添加后打印字符

amazon-web-services - 使用 AWS SNS 向特定 APNS token 发送推送通知

performance - gRPC 服务器在以太网上的响应时间长

java - 使用 Java 匹配正则表达式组

C 中的字符串连接

go - Cloud BigTable 存储同一个 rowkey 的多个副本

c++ - 在二进制文件中读取和写入字符串c++