【问题标题】:Any tip to use ASCII characters? [closed]使用 ASCII 字符的任何提示? [关闭]
【发布时间】:2020-10-26 21:00:48
【问题描述】:

我正在使用 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++;
                }

【问题讨论】:

  • 确保用您正在使用的编程语言标记您的问题,以便了解该语言的人更有可能看到它。
  • c ! =85 ?你确定吗?
  • 请编辑您的问题以包含详细信息,例如错误所在的行。另外,当前代码顶部的字符串是什么?仅仅在方法之外声明一个字符串值也会导致问题。
  • 这看起来像是一个与考试/课程相关的问题。你了解 else 表达式了吗?它们将使您的代码更具可读性,并且您的问题将更容易发现(甚至消失),因为更少的代码意味着更少的错误可能性(在您的情况下);)
  • @Compufreak 你说得对,我完全忘记了其他事情,TY!

标签: c# string ascii


【解决方案1】:

问题是您的!= 之间有一个空格!= 运算符之一。如果您将以下内容替换为:c ! =85,则错误将消失:c != 85


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

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

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

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

另外,char 类有一个静态的IsDigit 方法,如果字符是数字,该方法将返回true

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多