Check if a character is a vowel or consonant?

前端 未结 13 1155
别那么骄傲
别那么骄傲 2020-12-09 09:57

Is there a code to check if a character is a vowel or consonant? Some thing like char = IsVowel? Or need to hard code?

case ‘a’:
case ‘e’:
case ‘i’:
case ‘o’         


        
相关标签:
13条回答
  • 2020-12-09 10:27

    This works just fine.

    public static void Main(string[] args)
        {
            int vowelsInString = 0;
            int consonants = 0;
            int lengthOfString;
            char[] vowels = new char[5] { 'a', 'e', 'i', 'o', 'u' };
    
            string ourString;
            Console.WriteLine("Enter a sentence or a word");
            ourString = Console.ReadLine();
            ourString = ourString.ToLower();
    
            foreach (char character in ourString)
            {
                for (int i = 0; i < vowels.Length; i++)
                {
                    if (vowels[i] == character) 
                    {
                        vowelsInString++;
                    }
                }
            }
            lengthOfString = ourString.Count(c => !char.IsWhiteSpace(c)); //gets the length of the string without any whitespaces
            consonants = lengthOfString - vowelsInString; //Well, you get the idea.
            Console.WriteLine();
            Console.WriteLine("Vowels in our string: " + vowelsInString);
            Console.WriteLine("Consonants in our string " + consonants);
            Console.ReadKey();
        }
    }
    
    0 讨论(0)
  • 2020-12-09 10:28

    Here's a function that works:

    public static class CharacterExtentions
    {
        public static bool IsVowel(this char c)
        {
            long x = (long)(char.ToUpper(c)) - 64;
            if (x*x*x*x*x - 51*x*x*x*x + 914*x*x*x - 6894*x*x + 20205*x - 14175 == 0) return true;
            else return false;
        }
    }
    

    Use it like:

    char c = 'a';
    if (c.IsVowel()) { // it's a Vowel!!! }
    

    (Yes, it really works, but obviously, this is a joke answer. Don't downvote me. or whatever.)

    0 讨论(0)
  • 2020-12-09 10:36

    Try this out:

    char[] inputChars = Console.ReadLine().ToCharArray();
    int vowels = 0;
    int consonants = 0;
    foreach (char c in inputChars)
    {
       if ("aeiou".Contains(c) || "AEIOU".Contains(c))
       {
           vowels++;
       }
       else
       {
           consonants++;
       }
    }
    Console.WriteLine("Vowel count: {0} - Consonant count: {1}", vowels, consonants);
    Console.ReadKey();
    
    0 讨论(0)
  • 2020-12-09 10:40
    Console.WriteLine("Please input a word or phrase:");
    string userInput = Console.ReadLine().ToLower();
    
    for (int i = 0; i < userInput.Length; i++)
            {
                //c stores the index of userinput and converts it to string so it is readable and the program wont bomb out.[i]means position of the character.
                string c = userInput[i].ToString();
                if ("aeiou".Contains(c))
                {
                    vowelcount++;
                }
            }
            Console.WriteLine(vowelcount);
    
    0 讨论(0)
  • 2020-12-09 10:42

    Why not create an array of the vowels/consonants and check if the value is in the array?

    0 讨论(0)
  • 2020-12-09 10:42

    You can use the following extension method:

    using System;
    using System.Linq;
    
    public static class CharExtentions
    {
        public static bool IsVowel(this char character)
        {
            return new[] {'a', 'e', 'i', 'o', 'u'}.Contains(char.ToLower(character));
        }
    }
    

    Use it like:

    'c'.IsVowel(); // Returns false
    'a'.IsVowel(); // Returns true
    
    0 讨论(0)
提交回复
热议问题