Подтвердить что ты не робот

Подсчитывая, сколько раз в строке появляется какой-то char, прежде чем появится какой-либо другой char

У меня много строк. Каждая строка добавляется не менее 1 $. Каков наилучший способ прокрутки символов каждой строки для подсчета количества $ для каждой строки.

например:

"$hello" - 1
"$$hello" - 2
"$$h$ello" - 2
4b9b3361

Ответ 1

Вы можете использовать метод Count

var count = mystring.Count(x => x == '$')

Ответ 2

int count = myString.TakeWhile(c => c == '$').Count();

И без LINQ

int count = 0;
while(count < myString.Length && myString[count] == '$') count++;

Ответ 3

Самый простой подход - использовать LINQ:

var count = text.TakeWhile(c => c == '$').Count();

Есть, конечно, более эффективные подходы, но, возможно, самые простые.

Ответ 4

int count = yourText.Length - yourText.TrimStart('$').Length;

Ответ 5

int count = Regex.Matches(myString,"$").Count;

Ответ 6

Вы можете сделать это, это не требует LINQ, но это не лучший способ сделать это (поскольку вы делаете разделение всей строки и помещаете ее в массив и просто выбираете ее длину, вы можете лучше просто выполните цикл while и проверьте каждый символ), но он работает.

int count = test.Split('$').Length - 1;

Ответ 7

        public static int GetHowManyTimeOccurenceCharInString(string text, char c)
        {
            int count = 0;
            foreach(char ch in text)
            {
                if(ch.Equals(c))
                {
                    count++;
                }

            }
            return count;
        }

Ответ 8

var str ="hello";
str.Where(c => c == 'l').Count()  // 2

Ответ 9

Это аналогичное решение, чтобы найти, сколько адресов электронной почты включено в строку. Этот способ более эффективен

        int count = 0;
        foreach (char c in email.Trim())
            if (c == '@') count++;

Ответ 10

просто простой ответ:

    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;
    }

Ура! - Рик

Ответ 11

Один из подходов, который вы можете принять, - это следующий метод:

// 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.