Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Sempai15 en 4 Julio 2016, 01:57 am



Título: Ayuda en imprimir en un listbox las letras del abecedario que se repiten c#
Publicado por: Sempai15 en 4 Julio 2016, 01:57 am
Tengo un problema, tengo que imprimir cuantas letras tiene una cadena del abecedario ejemplo: "Hola mundo"
a =1
b=0
c=0
d=1
e=0
f=0
g=0 y así sucesivamente
en formulario de windows


Título: Re: Ayuda en imprimir en un listbox las letras del abecedario que se repiten c#
Publicado por: engel lex en 4 Julio 2016, 02:03 am
Tema movido a .net

que llevas hecho?


Título: Re: Ayuda en imprimir en un listbox las letras del abecedario que se repiten c#
Publicado por: Sempai15 en 4 Julio 2016, 02:30 am
Solo esto:
  string cadena, letra;
            int n, k;
            cadena = txtCadena.Text;
            n = cadena.Length;
            for (k = 0; k < n; k++) {

            }


Título: Re: Ayuda en imprimir en un listbox las letras del abecedario que se repiten c#
Publicado por: Eleкtro en 4 Julio 2016, 03:54 am
Puedes utilizar LINQ para simplificar el código.

Código original:
Código
  1. Dim charset As Char() = "abcdefghijklmnopqrstuvwxyz".ToCharArray()
  2. Dim str As String = "Hello World"
  3.  
  4. Dim charDict As New SortedDictionary(Of Char, Integer)(
  5.    str.GroupBy(Function(c As Char) Char.ToLower(c)).
  6.        ToDictionary(Function(group As IGrouping(Of Char, Char)) group.Key,
  7.                     Function(group As IGrouping(Of Char, Char)) group.Count))
  8.  
  9. For Each c As Char In charset
  10.    Dim count As Integer = charDict.SingleOrDefault(Function(pair As KeyValuePair(Of Char, Integer)) pair.Key = c).Value
  11.    Console.WriteLine("Character: {0}; Count: {1}", c, count)
  12. Next c

Traducción online a C#:
Código
  1. char[] charset = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
  2. string str = "Hello World";
  3.  
  4. SortedDictionary<char, int> charDict =
  5.    new SortedDictionary<char, int>(str.GroupBy((char c) => char.ToLower(c)).
  6.                                        ToDictionary((IGrouping<char, char> @group) => @group.Key,
  7.                                                     (IGrouping<char, char> @group) => @group.Count));
  8.  
  9. foreach (char c in charset) {
  10.    int count = charDict.SingleOrDefault((KeyValuePair<char, int> pair) => pair.Key == c).Value;
  11.    Console.WriteLine("Character: {0}; Count: {1}", Convert.ToString(c), Convert.ToString(count));
  12. }
  13.  
  14. //=======================================================
  15. //Service provided by Telerik (www.telerik.com)
  16. //=======================================================

Resultado de ejecución:

Character: a; Count: 0
Character: b; Count: 0
Character: c; Count: 0
Character: d; Count: 1
Character: e; Count: 1
Character: f; Count: 0
Character: g; Count: 0
Character: h; Count: 1
Character: i; Count: 0
Character: j; Count: 0
Character: k; Count: 0
Character: l; Count: 3
Character: m; Count: 0
Character: n; Count: 0
Character: o; Count: 2
Character: p; Count: 0
Character: q; Count: 0
Character: r; Count: 1
Character: s; Count: 0
Character: t; Count: 0
Character: u; Count: 0
Character: v; Count: 0
Character: w; Count: 1
Character: x; Count: 0
Character: y; Count: 0
Character: z; Count: 0


PD: Puedes adaptar facilmente el código si quieres trabajar mayus y minus por igual.

Saludos!