Java有一个Character.isDefined方法,但是.NET中的char类没有等价物.
我知道微软的旧Java库有这个,但我不想依赖那个库,如果我可以避免它.
.NET中是否有内置的等价物?或者调用所有可用的.is*方法组合产生相同的结果?(例如char.IsLetter(x)|| char.IsSymbol(x)等....)
你可以试试
int utf32 = 0x1FFFF;
string surrogate = Char.ConvertFromUtf32(utf32);
var isDefined = char.GetUnicodeCategory(surrogate, 0) != UnicodeCategory.OtherNotAssigned;
Run Code Online (Sandbox Code Playgroud)
char.GetUnicodeCategory(char)如果您有基本BMP中的角色,则可以直接使用.
请注意,每个版本的.NET都支持不同版本的Unicode,因此返回的内容取决于当前版本的.NET /当前操作系统使用的Unicode版本.