我必须创建一个小程序,在这个程序中,我必须提示用户输入成语,并将这些成语存储到一个文本文件中。然后,我必须打开文本文件,计算每个成语中的元音数量(a, e, i, o, u),并显示给用户。
这是我目前所创建的代码。
int numberOfIdioms;
string fileName = "idioms.txt";
int countA = 0, countE = 0, countI = 0, countO = 0, countU = 0;
Console.Title = "String Functions";
Console.Write("Please enter number of idioms: ");
numberOfIdioms = int.Parse(Console.ReadLine());
string[] idioms = new string[numberOfIdioms];
Console.WriteLine();
for (int aa = 0; aa < idioms.Length; aa++)
{
Console.Write("Enter idiom {0}: ", aa + 1);
idioms[aa] = Console.ReadLine();
}
StreamWriter myIdiomsFile = new StreamWriter(fileName);
for (int a = 0; a < numberOfIdioms; a++)
{
myIdiomsFile.WriteLine("{0}", idioms[a]);
}
myIdiomsFile.Close();
你可以使用下面的代码来获取一个字符串的元音数。
int vowelCount = System.Text.RegularExpressions.Regex.Matches(input, "[aeoiu]").Count;
替换 input
与你的字符串变量。
如果你想不分大小写(大写)地计数,你可以使用。
int vowelCount = System.Text.RegularExpressions.Regex.Matches(input.ToLower(), "[aeoiu]").Count;
string Target = "my name and your name unknown MY NAME AND YOUR NAME UNKNOWN";
List pattern = new List { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
int t = Target.Count(x => pattern.Contains(x))。
我们可以使用正则表达式来匹配每个idoms中的元音。你可以调用下面提到的函数来获取元音数。
工作代码片段。
//below function will return the count of vowels in each idoms(input)
public static int GetVowelCount(string idoms)
{
string pattern = @"[aeiouAEIOU]+"; //regular expression to match vowels
Regex rgx = new Regex(pattern);
return rgx.Matches(idoms).Count;
}