检查基本拉丁字母(A-Z)的最简单方法

本文关键字:最简单 方法 A-Z 拉丁字母 检查 | 更新日期: 2023-09-27 18:21:57

也许我遗漏了一些显而易见的东西,但除了转换为字符串并使用Regex之外,有没有更简单的方法来检查字符是否是基本拉丁字母(a-z)?:例如:

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-Z)的最简单方法

如果使用字符文字,您的第二位代码看起来会更好:

public static bool IsBasicLetter(char c) {
    return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}

这个怎么样?

return (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z');

如果您想让它变得更复杂,比如a-Z的子集和其他几个字符(即检查有效的Base64字符),请考虑为前127或255个字符使用布尔标志数组,并为您希望在IsBasicLetter方法中允许的字符使用true。这是大多数库实际实现这类函数的方式。

要了解更多Unicode友好的字符检查方法(显然超出了问题的范围),请查看Char类的方法,如IsLetterOrDigit,它检查所有可能的字母变体。