我有很多字符串。每个字符串前面至少有一个$
。循环遍历每个字符串的字符以计算每个字符串有多少$
的最佳方法。
例如:
"$hello" - 1
"$$hello" - 2
"$$h$ello" - 2
答案 0 :(得分:71)
您可以使用Count方法
var count = mystring.Count(x => x == '$')
答案 1 :(得分:33)
int count = myString.TakeWhile(c => c == '$').Count();
没有LINQ
int count = 0;
while(count < myString.Length && myString[count] == '$') count++;
答案 2 :(得分:14)
最简单的方法是使用LINQ:
var count = text.TakeWhile(c => c == '$').Count();
当然有更有效的方法,但这可能是最简单的方法。
答案 3 :(得分:9)
你可以这样做,它不需要LINQ,但它不是最好的方法(因为你将整个字符串拆分并放在一个数组中,只需选择它的长度,你可以更好的只是做while
循环并检查每个字符),但它有效。
int count = test.Split('$').Length - 1;
答案 4 :(得分:6)
int count = yourText.Length - yourText.TrimStart('$').Length;
答案 5 :(得分:6)
var str ="hello";
str.Where(c => c == 'l').Count() // 2
答案 6 :(得分:5)
int count = Regex.Matches(myString,"$").Count;
答案 7 :(得分:2)
public static int GetHowManyTimeOccurenceCharInString(string text, char c)
{
int count = 0;
foreach(char ch in text)
{
if(ch.Equals(c))
{
count++;
}
}
return count;
}
答案 8 :(得分:0)
这是一个类似的解决方案,用于查找字符串中包含的电子邮件地址数。这种方式效率更高。
int count = 0;
foreach (char c in email.Trim())
if (c == '@') count++;
答案 9 :(得分:0)
您可以采取以下方法:
// Counts how many of a certain character occurs in the given string
public static int CharCountInString(char chr, string str)
{
return str.Split(chr).Length-1;
}
根据参数,此方法返回特定字符串中特定字符的计数。
此方法的工作原理是通过指定的字符将字符串拆分为数组,然后返回该数组的长度-1。
答案 10 :(得分:0)
//此代码对我有用
class CountOfLettersOfString
{
static void Main()
{
Console.WriteLine("Enter string to check count of letters");
string name = Console.ReadLine();
//Method1
char[] testedalphabets = new char[26];
int[] letterCount = new int[26];
int countTestesd = 0;
Console.WriteLine($"Given String is:{name}");
for (int i = 0; i < name.Length - 1; i++)
{
int countChar = 1;
bool isCharTested = false;
for (int j = 0; j < testedalphabets.Length - 1; j++)
{
if (name[i] == testedalphabets[j])
{
isCharTested = true;
break;
}
}
if (!isCharTested)
{
testedalphabets[countTestesd] = name[i];
for (int k = i + 1; k < name.Length - 1; k++)
{
if (name[i] == name[k])
{
countChar++;
}
}
letterCount[countTestesd] = countChar;
countTestesd++;
}
else
{
continue;
}
}
for (int i = 0; i < testedalphabets.Length - 1; i++)
{
if (!char.IsLetter(testedalphabets[i]))
{
continue;
}
Console.WriteLine($"{testedalphabets[i]}-{letterCount[i]}");
}
//Method2
var g = from c in name.ToLower().ToCharArray() // make sure that L and l are the same eg
group c by c into m
select new { Key = m.Key, Count = m.Count() };
foreach (var item in g)
{
Console.WriteLine(string.Format("Character:{0} Appears {1} times", item.Key.ToString(), item.Count));
}
Console.ReadLine();
}
}
答案 11 :(得分:-1)
只是一个简单的答案:
public static int CountChars(string myString, char myChar)
{
int count = 0;
for (int i = 0; i < myString.Length; i++)
{
if (myString[i] == myChar) ++count;
}
return count;
}
干杯! - 里克