也許我錯過了一些明顯的東西,但有沒有一種更簡單的方法來檢查一個字符是否是一個基本的拉丁字母(az),而不是轉換爲字符串,並使用正則表達式?:例如:最簡單的方法來檢查基本的拉丁字母(AZ)
public static bool IsBasicLetter(Char c) {
return Regex.IsMatch(c.ToString(), "[a-z]", RegexOptions.IgnoreCase);
}
Char.IsLetter匹配來自許多字母表的數百個字母字符。我可以直接檢查的代碼點,但感覺粗略:
public static bool IsBasicLetter(Char c) {
int cInt = c;
return !(cInt < 65 || cInt > 122 || (cInt > 90 & cInt < 97));
}
這讓我感到驚訝。我會認爲A <∈
2012-01-31 16:21:08
@jmh_gr:字符只是UTF-16代碼單元,ASCII部分中的非重音字符(即小於U + 0080)。 – 2012-01-31 16:22:41