String 确定字符是字母还是数字
假设Go字符串是unicode,有没有办法安全地确定字符(例如字符串中的第一个字母)是字母还是数字?过去,我只会检查ASCII字符范围,但我怀疑这对于unicode字符串是否非常可靠。您可以在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您始终
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