如何计算c#中字符串中字符的重复次数? 例如我有字符“S”的重复sasysays数4用c计算字符串中字符的重复次数
回答
下面是使用LINQ(使用扩展方法写的)版本:
int s = str.Where(c => c == 's').Count();
这使用的事实,string
是IEnumerable<char>
,因此我们可以过滤所有与您正在查找的字符相同的字符,然后计算所选元素的数量。事实上,你可以写眼前这个(因为Count
方法允许你指定应适用于所有的计算元素谓语):
int s = str.Count(c => c == 's');
for(int i=0; i < str.Length; i++) {
if(str[i] == myChar) {
charCount++;
}
}
s.Where(c => c == 's').Count()
给出s是一个字符串,你正在寻找的“
string s = "sasysays ";
List<char> list = s.ToList<char>();
numberOfChar = list.Count<char>(c => c=='s');
另一种选择是:
int numberOfS = str.Count('s'.Equals);
这是一个小的向后 - 's'
是一个字符,每个字符都有一个Equals
方法,它可以用作Count
的参数。
当然,这不如c => c == 's'
灵活 - 你不能平凡地将它改变成复杂的条件。
+1,相当聪明...... – 2010-05-24 22:20:36
绝对聪明,虽然肯定比写出'c => c =='s''更直观(我认为代码更可能导致暂停)。 – Phong 2010-05-25 00:45:49
一个更通用的解决方案,计算所有字符的出现次数:
var charFrequencies = new Dictionary<char, int>();
foreach(char c in s)
{
int n;
charFrequencies.TryGetValue(c, out n);
n++;
charFrequencies[c] = n;
}
Console.WriteLine("There are {0} instances of 's' in the string", charFrequencies['s']);
不错的是,这是非常可能的不止一个字母是必要的,并计算一次是一个好主意。你也可以编写's.GroupBy(c => c).ToDictionary(g => g.Key,g => g.Count());'来实现同一个字典。我可能使用了太多的LINQ':P' – Kobi 2010-05-25 04:07:41
试试这个代码:
namespace Count_char
{
class Program
{
static void Main(string[] args)
{
string s1 = Convert.ToString(Console.ReadLine());
for (int i = 97; i < 123; i++)
{
string s2 = Convert.ToString(Convert.ToChar(i));
CountStringOccurrences(s1, s2);
}
Console.ReadLine();
}
public static void CountStringOccurrences(string text, string pattern)
{
int count = 0;
int i = 0;
while ((i = text.IndexOf(pattern, i)) != -1)
{
i += pattern.Length;
count++;
}
if (count != 0)
{
Console.WriteLine("{0}-->{1}", pattern, count);
}
}
}
}
- 1. Scala - 计算字符串中相邻重复字符的数量
- 2. 计算字符串在文件中重复的次数?
- 3. 计算字符串中的字符数
- 4. 计算字符串中字符的出现次数
- 5. Python:计算字符串中给定字符的出现次数
- 6. 计算字符串中字符的出现次数
- 7. 计算字符串中特定字符的出现次数
- 8. 计算字符串中字符的出现次数
- 9. 计数在文件perl中重复的字符串次数
- 10. 在JavaScript中计算字符串中数字的出现次数
- 11. 计算两个字符串有多少个重复字符
- 12. 计算字符输入次数而不使用字符串的次数
- 13. 从字符串中连续重复计数字符数
- 14. 计算字符串中的字符
- 15. 计算数组中字符串的出现次数,然后删除重复项
- 16. 计算字符串中的字数?
- 17. Javascript计算字符串中的数字
- 18. 计算字符串中数字的出现次数
- 19. 如何计算字符串数组中的重复项?
- 20. 在C中删除字符串中的重复子字符串#
- 21. 计算字符串模式的出现次数,使用Linq的字符串
- 22. 计算每个单词在一个字符串中重复的次数?
- 23. 将字符串作为输入并计算字符串出现在字符串中的次数的函数
- 24. STEPWISE重复字符串中的字符
- 25. 如何计算字符串中子字符串的出现次数?
- 26. 如何计算列表中的字符串出现次数(字符串)
- 27. 计算字符串中所有字母的出现次数PHP
- 28. Java:计算字符串中字母的出现次数
- 29. 如何计算字母出现在字符串中的次数?
- 30. 如何计算Dataframe字段中字符串的出现次数?
我试图在VS2008和字符串似乎并没有被IEnumerable的。 你可以验证。 string.ToCharArray()是IEnumerable – josephj1989 2010-05-24 22:01:48
@ josephj1989,再次检查... http://msdn.microsoft.com/en-us/library/system.string.aspx – 2010-05-24 22:23:07
为了使Intellisense为您提供LINQ扩展方法,您可能必须将该字符串转换为'IEnumerable'。 –
Phong
2010-05-25 00:43:53