字符串中字符的出现次数及其位置

时间:2013-12-06 14:44:55

标签: c# string search

Console.WriteLine("Insert the character you are searching for: ");
CharacterSearch = Console.ReadLine();
var count = file.Where(x => x == CharacterSearch).Count();

所以我要做的是从变量file中读取文本,然后搜索从键盘输入的字符串中的特定字符。因此,搜索到的字符将是CharacterSearch

我还想检查他们的位置,而不仅仅是发生次数。

3 个答案:

答案 0 :(得分:1)

这是非常低效,但它是一个选项,文件很小。

CharacterSearch = Console.ReadKey();
var count = File.ReadLines(pathToFile)
    .Select((c, i) => new { Character = c, Index = i })
    .ToList()
    .Where(x => x.Character == CharacterSearch);

答案 1 :(得分:1)

为什么不简单使用此方法? (你在寻找一个复杂的吗?)

List<int> indexes = new List<int>();

for (int i = 0; i < file.Length; i++)
{
    if (file[i]==CharacterSearch)
    {
        indexes.Add(i);    
    }
}

int count = indexes.Count;

答案 2 :(得分:0)

效率低但可以在文件较小时应用。

public static int CharCount(string input,char c)
{
    var charCount=input.GroupBy(a => a).ToDictionary(k => k.Key, v => v.Count());
    if (charCount.ContainsKey(c))
        return charCount[c];
    return 0;
}

如果你想在同一个字符串中进行搜索,我认为最好保持映射。再一次只有一个小文件。

 public static Dictionary<char, int> CharCountMapping(string input)
{
    return input.GroupBy(a => a).ToDictionary(k => k.Key, v => v.Count());
}