Java.lang.Character.isUnicodeIdentifierStart()
.NET 中是否有等效的方法?
问问题
160 次
3 回答
5
没有直接的方法。在大多数 .NET 语言中,标识符可以是任何 Unicode“字母”或下划线,因此您可以轻松地将其写为:
bool IsValidIdentifierStart(char ch)
{
return ch == '_' || char.IsLetter(ch);
}
请注意,CLR 更灵活。CLS 规范第 8.5.1 章规定:
组件应遵循 Unicode 标准 3.0 技术报告 15 的附件 7,管理允许开始和包含在标识符中的字符集,可在http://www.unicode.org/unicode/reports/tr15/tr15在线获取-18.html。标识符应采用 Unicode 规范化表格 C 定义的规范格式。
这允许运行时使用许多标准语言不允许的标识符。
于 2013-08-02T21:13:43.750 回答
1
您可以使用 Char.IsLetter() 作为 Unicode 标识符必须以字母开头...
编辑: IsLetter() 将为下划线返回 true,这是无效的,因此也应该检查。
于 2013-08-02T21:13:18.517 回答
0
如果您需要的不仅仅是ch == '_' || char.IsLetter(ch)
Reed Copsey 的建议,请查看
Char.GetUnicodeCategory,它为您提供了字符的详细 Unicode 分类。
于 2013-08-02T21:16:35.343 回答