嘿我想知道如何變成一個for循環,所以我沒有這26倍複製的每個字母:我如何將它變成for循環?
count[1] = str.Split('A').Length - 1;
Console.WriteLine("A comes up x " + count[1]);
計數是空白的整數陣列,採用26個值,表示字母表中的字母在字符串str中的存儲時間,存儲在名爲字母的字符串數組中
嘿我想知道如何變成一個for循環,所以我沒有這26倍複製的每個字母:我如何將它變成for循環?
count[1] = str.Split('A').Length - 1;
Console.WriteLine("A comes up x " + count[1]);
計數是空白的整數陣列,採用26個值,表示字母表中的字母在字符串str中的存儲時間,存儲在名爲字母的字符串數組中
而不是分割並創建新數組,我將使用Count()
函數。然後你可以遍歷每個字符,或循環你現有的數組。
for (char c = 'A'; c <= 'Z'; c++)
{
Console.WriteLine(c + " comes up x " + str.Count(x => char.ToUpper(x) == c));
}
你贏了。老實說,不知道你可以在'char'上'++' – Jonesopolis
這裏有一個:
static void Main(string[] args)
{
var letters = "abcdefghijklmnopqrstuvwxyz";
var str = "the quick brown fox jumps over the lazy dog";
for (int i = 0; i < letters.Length; i++)
Console.WriteLine("{0} comes up {1} time(s)", letters[i], str.ToLower().Split(letters[i]).Length - 1);
Console.Read();
}
您可以使用陣列來存儲計數的每個字符。分裂將是一個昂貴的操作
var str = "THISISJUSTATEST";
var array = new int[26];
foreach(var character in str.ToCharArray()){
if (character >= 'A' && character <= 'Z'){
var index = character - 'A';
array[index]++;
}
}
for (int i = 0; i < 26; i++) {
var c = i +'A';
Console.WriteLine("{0} comes {1} time(s)", (char)c, array[i]);
}
暗示:具有以與陣列[「A」,「B」,...]和循環遍歷該或像這樣http://stackoverflow.com/questions/289792/int-to-char-in-c-sharp – dbarnes
謝謝對不起,我忘了提及一個叫做字母的字符串數組,有所有這些 –