计算字符串中元音的数量

时间:2011-06-13 14:42:58

标签: c# asp.net

我有一个用户输入随机字符串的文本框。我想计算字符串中的元音数量(A,E,I,O,U),并在labelcontrol中显示结果。

protected void Button1_Click(object sender, EventArgs e)
    {
        string EnterString;
        EnterString = TextBox1.Text;
        char ch1 = 'a';
        char ch2 = 'e';
        char ch3 = 'i';
        char ch4 = 'o';
        char ch5 = 'u';

        int counta = 0;
        int counte = 0;
        int counti = 0;
        int counto = 0;
        int countu = 0;
        char ch6 = 'A';
        char ch7 = 'E';
        char ch8 = 'I';
        char ch9 = 'O';
        char ch10 = 'U';

        int countA = 0;
        int countE = 0;
        int countI = 0;
        int countO = 0;
        int countU = 0;

        //const string vowels = "aeiou";
        /* return value.Count(chr => vowels.Contains(char.ToLower(chr)));
         return Value.Count()*/
        int j = counta + counte + counti + counto + countu + countA + countE + countI + countO + countU;

        foreach (char v in EnterString)
        {
            if (v == ch1) { counta++; j++; }

            else if (v == ch2) { counte++; j++; }

            else if (v == ch3) { counti++; j++; }

            else if (v == ch4) { counto++; j++; }

            else if (v == ch5) { countu++; j++; }
        }
        foreach (char v in EnterString)
        {
            if (v == ch6) { countA++; j++; }

            else if (v == ch7) { countE++; j++; }

            else if (v == ch8) { countI++; j++; }

            else if (v == ch9) { countO++; j++; }

            else if (v == ch10) { countU++; j++; }
        }

        Label1.Text = j.ToString();
    }

8 个答案:

答案 0 :(得分:4)

你的代码中有这个:

const string vowels = "aeiou";
return value.Count(chr => vowels.Contains(char.ToLower(chr)));

这是有效的,至少如果你的文化是美国的话。所以不知道你为什么评论它以支持当前的怪物。

Turkish locale上,它会失败,因为I的小写字母不是i而是ı(已取消)。因此,如果您将元音定义为aeiouAEIOU,则应使用ToLowerInvariant

但是如果你想要包含其他元音(如Ä),除了列出所有字符外,我不知道怎么做。

全面实施:

int CountVowels(string value)
{
    const string vowels = "aeiou";
    return value.Count(chr => vowels.Contains(char.ToLowerInvariant(chr)));
}

看起来你有很好的代码部分来自: Counting vowels using switch

答案 1 :(得分:2)

int vowel = 0;
        Console.WriteLine("Please enter the string:");
        string main = Console.ReadLine();
        for (int j = 0; j < main.Length ; j++)
        {
            if (main[j] == 'a' || main[j] == 'A' || main[j] == 'e' || main[j] == 'E' || main[j] == 'i' || main[j] == 'I' || main[j] == 'o' || main[j] == 'O' || main[j] == 'u' || main[j] == 'U')
            {
                vowel++;
            }
        }
        Console.WriteLine("Number of vowels in sentence is :"+ vowel);
        Console.ReadLine();

答案 2 :(得分:2)

    Console.WriteLine("Please input your text: ")
    mystring = Console.ReadLine
    For i = 1 To mystring.Length
        Console.Write((mystring(i - 1)) & ",")
        isItAVowel = False
        If mystring(i - 1) = "a" Or mystring(i - 1) = "A" Then isItAVowel = True
        If mystring(i - 1) = "e" Or mystring(i - 1) = "E" Then isItAVowel = True
        If mystring(i - 1) = "i" Or mystring(i - 1) = "I" Then isItAVowel = True
        If mystring(i - 1) = "o" Or mystring(i - 1) = "O" Then isItAVowel = True
        If mystring(i - 1) = "u" Or mystring(i - 1) = "U" Then isItAVowel = True
        If isItAVowel Then

这可能有助于好运

答案 3 :(得分:0)

private void button1_Click(object sender,EventArgs e)

    {

        string EnterString;
        EnterString = textBox1.Text;
        const string vowels = "aeiou";
        label1.Text = EnterString.Count(myString => vowels.Contains(char.ToLowerInvariant(myString))).ToString();

    }

答案 4 :(得分:0)

public static void Main()
{
    char[] sentence = new char[100];

    int i, vowels = 0, consonants = 0, special = 0, n;
    Console.WriteLine("Enter the Length of the sentence  \n");
    n = int.Parse(Console.ReadLine());
    for (i = 0; i < n; i++)
    {
        sentence[i] = Convert.ToChar(Console.Read());
    }
    for (i = 0; sentence[i] != '\0'; i++)
    {
        if ((sentence[i] == 'a' || sentence[i] == 'e' || sentence[i] ==
        'i' || sentence[i] == 'o' || sentence[i] == 'u') ||
        (sentence[i] == 'A' || sentence[i] == 'E' || sentence[i] ==
        'I' || sentence[i] == 'O' || sentence[i] == 'U'))
        {
            vowels = vowels + 1;
        }
        else
        {
            consonants = consonants + 1;
        }
        if (sentence[i] == 't' || sentence[i] == '\0' || sentence[i] == ' ')
        {
            special = special + 1;
        }
    }

    consonants = consonants - special;
    Console.WriteLine("No. of vowels {0}", vowels);
    Console.WriteLine("No. of consonants {0}", consonants);
    Console.ReadLine();
    Console.ReadLine();
}

答案 5 :(得分:0)

#include <bits/stdc++.h>    
using namespace std;    
int main()    
{    
    int t;
    cin >> t;
    set<char> vowels = {'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'};
    while(t--)
    {
        string s;
        int c = 0;
        cin >> s;
        for(char i : s)
            if(vowels.find(i) != vowels.end())
                ++c;
        cout << c << "\n";
    }
    return 0;
}

答案 6 :(得分:0)

        string vowelList = ("aeiouAEIOU");
        int i = 0;
        int j = 0;
        int vowelCount = 0;

        string main = textBox1.Text;  /or Console.ReadLine();

        while (j < main.Length)

        {
            while (i < vowelList.Length)
            {
                if (main[j] == vowelList[i])
                {
                    vowelCount++;
                }

                i++; 
            }

            j = j + 1;
            i = 0;
        }

        label1.Text = ("Number of vowels in sentence is :" + vowelCount);  /or Console.Writeline ("Number of vowels in sentence is:  " + vowelCount

答案 7 :(得分:0)

count = 0
string=input("Enter string:")
vowels = set("aeiouAEIOU")
for letter in string:
    if letter in vowels:
        count += 1
print("Count of the vowels is:")
print(count)