Подбирая уникальные символы один раз в строке - PullRequest
0 голосов
/ 29 ноября 2018
string uniquechars = "a,e,i"
            int counting = 0;
            foreach (var item in line)
            {
                if (chars.IndexOf(item) != -1)
                {
                    counting++;
                }
            }

Этот код определяет, сколько раз определенный символ находится внутри строки, но я не совсем понимаю, как заставить его считать каждую букву только один раз.Например, aaaaeeeeiiii - это строка, и я хочу, чтобы результат был Number of unique letters appeared that appeared: 3

. Для 3 символов я мог бы сделать if, но это было бы неэффективно, если бы у меня было около 8 уникальных символов, и они чувствительны к региструтоже.


Решено

Благодаря комментарию я понял это простым способом.Вот как я это получил:

            char[] seperators = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
        string chars = "A;E,I.Y;O;U;a;e;i;y;o;u;Ą;ą;Ę;ę;Ė;ė;Į;į;Ų;ų;Ū;ū";
        string[] Uniquechars = chars.Split(seperators);
        int counting = 0;
        for (int i = 0; i < Uniquechars.Length; i++)
        {
            if (eil.Contains(Uniquechars[i])) counting++;

        }

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете просто посчитать разные символы:

var count = chars.Distinct().Count(char.IsLetter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...