在.NET中,与Java的Character.isDefined最接近的是什么?

时间:2013-09-06 08:58:37

标签: c# java .net

Java有Character.isDefined方法,但.NET中的char类没有等效方法。

我知道Microsoft's old Java libraries have this,但如果可以避免,我不想依赖该库。

.NET中是否有内置的等价物?或者调用所有可用的.is *方法组合产生相同的结果? (例如char.IsLetter(x)|| char.IsSymbol(x)等......)

1 个答案:

答案 0 :(得分:7)

您可以尝试使用

int utf32 = 0x1FFFF;
string surrogate = Char.ConvertFromUtf32(utf32);
var isDefined = char.GetUnicodeCategory(surrogate, 0) != UnicodeCategory.OtherNotAssigned;

如果您有基本BMP中的角色,则可以直接使用char.GetUnicodeCategory(char)

请注意,每个版本的.NET都支持不同版本的Unicode,因此返回的内容取决于当前版本的.NET /当前操作系统使用的Unicode版本。