blink_Lom Ответов: 4

подсчитайте количество символов в строке


Привет!

Я новичок в c#.
Мой вопрос заключается в том, как я могу подсчитать количество символов в строке?
Пример: в каком-то тексте мне нужно найти определенную букву (сколько раз эта буква появляется), используя цикл foreach.

Тнх

4 Ответов

Рейтинг:
9

CPallini

Если вы уже используете foreach петля тогда вам не нужна, априори, такая информация.
напр.:

String s = "foo abc";
int count = 0;
foreach (char c in s)
{
  count++;
}


JOAT-MON

Я думаю, что OP ищет частоту конкретной Буквы в foreach, а не только полный счет.

Syed Nasser Ahmed

статический недействительным CountLetters()
{
строка str = "ThisIsAWord";
char[] strChars = str.Метод toArray();
int[] cntr = new int[str.Length];
int i = 0;
строка retString = строка.Пустой;

foreach (char c в str)
{
канминг[я] = countChars(ул. З., );
я++;
}

i = 0;

foreach (int j в cntr)
{
retString += strChars[i] + "происходит" + j + "раз" + "\n";
я++;
}

Приставка.WriteLine(retString);
Приставка.Прочитай();
}

статические int countChars(char c, string str)
{
int cntr = 0;

по каждому элементу (чар вновая по ул.)
{
if (c == cNew) cntr++;
}

вернуться канминг;
}

Это может быть не самое лучшее решение, предложения приветствуются...

Рейтинг:
34

Jonathan Cardy

Почему вы должны использовать a foreach петля? Поскольку вы новичок, вот несколько гораздо более интересных решений, чтобы посмотреть на них!

string str = "abcdaab";

//Solution 1 - remove the character, and compare its length.
int result1 = str.Length - str.Replace("a", "").Length;

//Solution 2 - split the string into an array using the character as a delimiter
int result2 = str.Split('a').Length - 1;

//Solution 3 - use the LINQ 'Count' extension method
int result3 = str.ToCharArray().Count(c => c == 'a');


Kim Togo

Мой 5 для решения 3. Linq-это мощный инструмент.

Sergey Alexandrovich Kryukov

Это хорошо, особенно линк. Вместо "" Вам лучше использовать строку.Пустой.
Жестко закодированные (непосредственные) константы плохи, но для кодлета, возможно, приемлемы.
Во всяком случае, 5.
--СА

Рейтинг:
28

aravindkrgec

int count = 0;
char charToCount = 'i';
foreach (char c in string123)
{
    if( c == charToCount )
    {
        count++;
    }
}


Приведенный выше код поможет вам найти нет. например, конкретного символа, здесь 'i', в строке string123.


JOAT-MON

обернутый кодовый блок

Рейтинг:
16

Mahendra.p25

попробовать это

string abc="1234567777";
           int  k = abc.Length;


string abc = "adkjddaadtyy";
            int Count=0;
            foreach (char c in abc)
            {
                if (c == 'd')
                {
                    Count++;
                }
            }
            int k = Count;