簡體   English   中英

NET中的Java.lang.Character.isUnicodeIdentifierStart()等效項

[英]Java.lang.Character.isUnicodeIdentifierStart() equivalent in .NET

.NET中是否有與Java.lang.Character.isUnicodeIdentifierStart()等效的方法?

沒有直接為此的方法。 在大多數.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定義的規范格式。

這使運行時可以使用許多標准語言無法識別的標識符。

您可以使用Char.IsLetter(),因為Unicode標識符必須以字母開頭。

編輯:IsLetter()將為下划線返回true,這是無效的,因此也應進行檢查。

如果您需要的不是ch == '_' || char.IsLetter(ch) Reed Copsey建議使用ch == '_' || char.IsLetter(ch) ,而不要查看Char.GetUnicodeCategory ,它可以為您提供字符的詳細Unicode分類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM