String 确定字符是字母还是数字

String 确定字符是字母还是数字,string,go,unicode-string,String,Go,Unicode String,假设Go字符串是unicode,有没有办法安全地确定字符(例如字符串中的第一个字母)是字母还是数字?过去,我只会检查ASCII字符范围,但我怀疑这对于unicode字符串是否非常可靠。您可以在unicode软件包中始终使用: if unicode.IsNumber(rune) { ... } 请注意,这包含的字符不仅仅是0-9,例如罗马数字(如Ⅲ)或分数(如。⅒) . 如果您只想检查0-9,您应该像过去一样(是的,它是UTF-8安全的): 如果符文>=48&&rune='0'&&rune您始终

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

您可以在
unicode
软件包中始终使用:

if unicode.IsNumber(rune) { ... }
请注意,这包含的字符不仅仅是0-9,例如罗马数字(如Ⅲ)或分数(如。⅒) . 如果您只想检查0-9,您应该像过去一样(是的,它是UTF-8安全的):

如果符文>=48&&rune='0'&&rune您始终可以在
unicode
包中使用:

if unicode.IsNumber(rune) { ... }
请注意,这包含的字符不仅仅是0-9,例如罗马数字(如Ⅲ)或分数(如。⅒) . 如果您只想检查0-9,您应该像过去一样(是的,它是UTF-8安全的):


如果符文>=48&&rune='0'&&rune注释,对于ASCII,为了提高清晰度,您还可以使用:
如果符文>='0'&&rune@MartinGallagher True。生成等效的可执行文件,但您的建议使代码更清晰。我在编辑中添加了它。注意,对于ASCII,为了提高清晰度,您还可以使用:
如果符文>='0'&&rune@MartinGallagher True。生成等效的可执行文件,但您的建议使代码更加清晰。我在编辑中添加了它。
if rune >= '0' && rune <= '9' { ... } // as suggested by Martin Gallagher