Как печатение согласного текста

У меня есть этот код в c#, который печатает мне количество согласных, которое есть во фразе, который вводится в компьютер, мое сомнение - это как печатение, что согласный.

ПРИМЕР

gonzalez

//вывод

количество согласных: 1

согласный: n

static void Main(string[] args)
    {
        Console.Write("Escriba una frase: ");
        string frase = Console.ReadLine();
        Console.WriteLine("Cantidad de consonantes en {0}"+CuentaConsonante(frase) );
        Console.Read();
    }

    static int CuentaConsonante(string frase)
    {
        int contador = 0;
        char c;
        foreach (char v in frase)
        {
            c = Char.ToLower(v);
            if (c == 'b' || c == 'c' || c == 'd' || c == 'f' || c == 'g'|| c == 'h'|| c == 'n')
                contador++;

        }
        return contador;
    }
2
задан 01.03.2019, 02:27
3 ответа

Я буду выставлять одну soluciГіn очень простая используя LINQ:

char[] consonantes = new char[] { 'b', 'c', 'd', 'f', 'g', 'h', 'n' };

string inputstring = "gonzalezn";
var conson = inputstring.ToLower().Where(x => consonantes.Contains(x)).GroupBy(x=> x);

foreach (var cons in conson)
{
    Console.WriteLine("la consonante {0} se repite {1} veces", cons.Key, cons.Count());
}

Console.WriteLine("total de consonantes diferentes encontradas: {0}", conson.Count());
Console.WriteLine("total de consonantes encontradas: {0}", conson.SelectMany(x => x).Count());

то, что мы делаем, состоит в том, чтобы определять сначала array с символами, который мы хотим искать. Позже, используя Where мы ищем все символы цепи ввода который estГ©n включенные в array согласных, и мы группируем, так как они могут быть повторенными.

Из-за Гєltimo, мы пробегаем результаты и печатаем характер и число раз, которое находилось. У

cГіdigo предыдущий есть следующий вывод, ввиду gonzalezn как ввод:

la consonante g se repite 1 veces
la consonante n se repite 2 veces
total de consonantes diferentes encontradas: 2
total de consonantes encontradas: 3

Edit

Si в действительности ты хочешь считать все согласные, и не только те, которые ты помещаешь в твой пример, что ты должен заставлять менять array согласных на одного из членов собрания с решающим голосом, и использовать Char.IsLetter, чтобы подтверждать с одной стороны, - буква ли характер, и из-за другого, если это не гласная:

char[] vocales = new char[] { 'a', 'e', 'i', 'o', 'u' };
var conson = inputstring.ToLower().Where(x => Char.IsLetter(x) && !vocales.Contains(x)).GroupBy(x=> x);

Результат cГіdigo изменяя эту линию - следующий (используя такие gonzalez как ввод:

la consonante g se repite 1 veces
la consonante n se repite 1 veces
la consonante z se repite 2 veces
la consonante l se repite 1 veces
total de consonantes diferentes encontradas: 4
total de consonantes encontradas: 5 
2
ответ дан 19.11.2019, 22:45

Поскольку он показывает @Pikoh это тебе mГЎs просто, он состоит в том, чтобы использовать LinQ, хотя не sГ© если entendГ - хорошо вопрос, но чтобы не помещать 22 согласных я это harГ - в с гласными и одним "where not in" следующего способа:

            char[] consonantes = new char[] { 'a', 'e', 'i', 'o', 'u' };

            string inputstring = "gonzalezn";
            var conson = inputstring.ToLower().Where(x => !consonantes.Contains(x)).GroupBy(x => x);

            foreach (var cons in conson) {
                Console.WriteLine("la consonante {0} se repite {1} veces", cons.Key, cons.Count());
            }
2
ответ дан 19.11.2019, 22:45
  • 1
    Вопрос в этом чувстве не является ясным, поэтому я respondí с согласными, что habí в использованный в Вашем có я говорю. В любом случае, имей в виду, чем с этой solució n, такие символы как знаки puntuació n например, sumarí an как согласные. – Pikoh♦ 01.03.2019, 03:12
  • 2
    Ты можешь смотреть в моем ответе как solucionarí в меня достаточно простой формы :) – Pikoh♦ 01.03.2019, 03:54
  • 3
    Pikoh спасибо за уже эту помощь, решенный – Hades González 01.03.2019, 12:17

Будь должен заменять эту lГ-nea:

Console.WriteLine("Cantidad de consonantes en {0}"+CuentaConsonante(frase) );

поэтому:

Console.WriteLine("Cantidad de consonantes en {0}" , CuentaConsonante(frase));
0
ответ дан 19.11.2019, 22:45
  • 1
    но меня печатает то же самое, меня печатает количество и я хочу знать, что consonate он такой gonzalez , consonate - n – Hades González 28.02.2019, 16:08

Теги

Похожие вопросы