使用 ASCII 字符有什么技巧吗?

Any tip to use ASCII characters?

我正在使用 ASCII 字符编写程序,但在声明字符时出现错误 (CS0019)。解决此问题的任何解决方案或提示

我在声明中发现错误:

"if ((c >= 66 && c < 90 || c >= 97) && c <= 122 && c != 65 && c !=73 && c ! =85 && c !=97 && c != 101 && c != 105 && c != 111 && c != 117)"


static void Main(string[] args)
        {
            string text = "example.abc123";

            int vowels = 0;
            int consonants = 0;
            int numbers = 0;

            foreach (char c in text)
            {
                if (c >= 48 && c <= 57)
                {
                    numbers++;
                }
                    if (c == 65 || c == 69 || c == 73 || c == 79 || c == 85 || c == 97 || c == 101 || c == 105 || c == 111 || c == 117)
                {
                    vowels++;
                }
                if ((c >= 66 && c < 90 || c >= 97) && c <= 122 && c != 65 && c !=73 && c ! =85 && c !=97 && c != 101 && c != 105 && c != 111 && c != 117)
                {
                    consonants++;
                }

问题是您的 != 运算符之一的 != 之间有一个 space。如果将 c ! =85 替换为 c != 85

,错误将消失

仅供参考,有一种更简单的方法来检查字符是否为元音。我们可以用一个字符串来表示所有元音字母,然后检查它是否包含字符:

public static bool IsVowel(char c)
{
    return "aeiouAEIOU".Contains(c);
}

我们也可以对辅音做同样的事情,或者我们可以使用 char class 的 IsLetter 方法来判断字符是否是字母,然后重复使用我们上面的 IsVowel 方法:

public static bool IsConsonant(char c)
{
    return char.IsLetter(c) && !IsVowel(c);
}

此外,char class 有一个静态 IsDigit 方法,如果字符是数字,它将 return true

因此,结合这些,我们可以将代码简化为:

foreach (char c in text)
{
    if (char.IsDigit(c)) numbers++;
    else if (IsVowel(c)) vowels++;
    else if (IsConsonant(c)) consonants++;
}