我正在计算数组中存在多少个字符串 -
Tags = "the cat the mat the sat";
string[] words = Tags.Split(' ');
int counter = 0;
foreach (string item in words)
{
if (item != "")
{
counter++;
}
}
但是,如何修改我的代码,以便计算每个字符串的出现次数。 例如 -
然后以某种方式存储这些值?
答案 0 :(得分:7)
您没有说出您使用的语言,但我认为它看起来像c#。这是一种方法。
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach (string word in words)
{
if (dictionary.ContainsKey(word))
{
dictionary[word] += 1;
}
else
{
dictionary.Add(word,1);
}
}
答案 1 :(得分:5)
试试这个:
var result = tags.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
.GroupBy(tag => tag)
.ToDictionary(group => group.Key, group => group.Count());
var max = result.MaxBy(kvp => kvp.Value);
var min = result.MinBy(kvp => kvp.Value);
使用MoreLINQ中的MaxBy和MinBy。
答案 2 :(得分:0)
存储在地图中,其中键是单词,值是计数器出现次数的计数器....
答案 3 :(得分:0)
您必须使用词典。这是:
string Tags = "the cat the mat the sat";
string[] words = Tags.Split(' ');
Dictionary<string, int> oddw = new Dictionary<string, int>();
foreach (string item in words)
{
if (item != "")
{
if (oddw.ContainsKey(item) == false)
{
oddw.Add(item, 1);
}
else
{
oddw[item]++;
}
}
}
foreach (var item in oddw)
{
Console.WriteLine(item);
}