elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C sharp - Como Contar la Repeticion de una palabra en una frase.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C sharp - Como Contar la Repeticion de una palabra en una frase.  (Leído 3,502 veces)
a.p007

Desconectado Desconectado

Mensajes: 4


Ver Perfil
C sharp - Como Contar la Repeticion de una palabra en una frase.
« en: 24 Marzo 2017, 22:41 »

Hola Buenas Tardes nesecito una pequeña ayuda en un programa, no se como contar cuantas veces se repite una palabra dentro de una oracion POR EJEMPLO:

Código
  1. console.writeline("hola adios hola adios hola");
  2. int frase = console.readline();

-devolver cual fue la palabra que mas se repitio?
-Cuantas Veces se repitio ?

Agradeceria Mucho su ayuda Gracias !!


· Los códigos deben ir en etiquetas GeSHi
· C# es .NET, no Visual Basic (movido)
>aquí las reglas del foro
-Engel Lex


« Última modificación: 24 Marzo 2017, 23:38 por engel lex » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #1 en: 24 Marzo 2017, 23:37 »

que has intentado? que has visto en internet que te pueda funcionar?


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
a.p007

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #2 en: 25 Marzo 2017, 00:23 »

La verdad he intentado de varias formas con for,foreach. usando contadores y de hecho logro sacar la cantidad de veces que se menciona cada palabra pero como te digo nose como sacar cual es la que mas se repite y su cantidad no se como ?? me dijeron con un arreglo o un diccionario pero soy nuevo y no cacho como usarlo en sintanxis :((((( ayuda porfa
En línea

Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #3 en: 25 Marzo 2017, 01:43 »

Puedes usar una función encargada de contar.
Código:
public int WordsCount(string text)
{
    if (string.IsNullOrEmpty(text))
    {
        return 0;
    }

    var count = 0;
    var word = false;

    foreach (char symbol in text)
    {
        if (!char.IsLetter(symbol))
        {
            word = false;
            continue;
        }

        if (word)
        {
            continue;
        }
        if(word=="palabra"){
           count++;
        }
        word = true;
    }

    return count;
}

Y luego la llamas desde el main:
Código:
int i;
i = WordsCount(string text);
Console.WriteLine(i);
« Última modificación: 25 Marzo 2017, 11:47 por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
a.p007

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #4 en: 25 Marzo 2017, 02:13 »

Código
  1.                            string[] myArray = new string[texto.Length];
  2.                            for (int i = 0; i < texto.Length; i++)
  3.                                myArray[i] = texto[i].ToString();
  4.  
  5.                            int contador2 = 0;
  6.                            for (int j = 0; j < myArray.Length; j++)
  7.                                if (myArray[i] == "letra")
  8.                                {
  9.                                    contador2++;
  10.                                }
  11.  
-asi me quedo pero me tiro error en  if (myArray == "letra") esa parte dice "que i no existe en el contexto", y disculpa por preguntar pero donde dice "letra" se debe cambiar algo ahi ?? de verdad q me averguenza preguntar esto ://


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
« Última modificación: 25 Marzo 2017, 02:15 por engel lex » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #5 en: 25 Marzo 2017, 08:59 »

una forma muy fácil es usar esta línea:


Código
  1. int CountItems1 = (from ItemRep in ARRAY where (ItemRep == "hola") select ItemRep).ToList().Count;


EJEMPLO:

Código
  1. string frase = "hola adios hola adios hola"; //Cadena
  2. string[] misplits = frase.Split(new char[]{' '}); //Convierte la cadena en array
  3.  
  4. //Cuenta la palabra hola
  5. int CountItems1 = (from ItemRep in misplits where (ItemRep == "hola")
  6.                   select ItemRep).ToList().Count;
  7.  
  8. //Cuenta la palabra adios
  9. int CountItems2 = (from ItemRep in misplits where (ItemRep == "adios")
  10.                   select ItemRep).ToList().Count;
  11.  
  12. Console.Write("hola: " + CountItems1 + " repeticiones" + Environment.NewLine);
  13. Console.Write("adios: " + CountItems2 + " repeticiones");
  14. Console.ReadLine();
  15.  

convierte la cadena en array  y después mediante FROME WHERE cuenta los elementos del array  donde el ítem sea igual a la palabra que se quiera contar.

para evitar que no distinga mayúsculas y minúsculas usa ToLower:

Código
  1. ... where (ItemRep == "hola".ToLower()) ...



mas tarde he recordado que había un método "FIND", curioseando he encontrado Array.FindAll. Con el cual se puede más fácilmente contar los elementos repetidos de una lista.

Código
  1. string frase = "hola adios hola adios hola"; //Cadena
  2. string[] misplits = frase.Split(new char[] { ' ' }); //Convierte la cadena en array
  3. int Items = Array.FindAll(misplits, x => x == "adios").Count(); //cuenta los elementos
  4. Console.Write(Items);
  5. Console.ReadLine();
  6.  

lo que hace Array.FindAll es obtener un array en los que se introducen todos los elementos que cumpla una determinada condición. En este caso que sean igual a "adios".







« Última modificación: 25 Marzo 2017, 09:58 por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: C sharp - Como Contar la Repeticion de una palabra en una frase.
« Respuesta #6 en: 25 Marzo 2017, 10:13 »


· C# es .NET, no Visual Basic (movido)
>aquí las reglas del foro
-Engel Lex

Jamás llegaré a comprender a que razonamiento llegan las personas para decidir que lo mejor es publicar una pregunta de C# en un foro de VB6...

...En fin.



-devolver cual fue la palabra que mas se repitio?
-Cuantas Veces se repitio ?

Puedes simplificar (que no optimizar) la tarea utilizando LINQ para agrupar los elementos del array según la cantidad de veces que se repitan, luego opcionálmente puedes ordenar los grupos según el valor de repetición, y por último añadirías la secuencia generada a un tipo de contenedor para darle un uso más amistoso, en este caso escogí el tipo Diccionario para denotar la ausencia de elementos (llaves) repetidos en la colección:

Código
  1. string[] arr = {"hola", "adios", "hola", "adios", "hola"};
  2.  
  3. Dictionary<string, int> countDict =
  4.    arr.GroupBy(str => str).
  5.        OrderByDescending(group => group.Count()).
  6.        ToDictionary(group => group.Key,
  7.                     group => group.Count(), StringComparer.Ordinal);
  8.  
  9. KeyValuePair<string, int> max = countDict.First();
  10. Console.WriteLine(string.Format("The most repeated element is \"{0}\" with a count of \"{1}\".", max.Key, max.Value));

Resultado de ejecución:
Cita de: Visual Studio's Debug Output Window
The most repeated element is "hola" with a count of "3".

Nota: Si quieres tener mayor control sobre el ordenamiento de los elementos de la colección, entonces utiliza el tipo OrderedDictionary o SorteredDictionary según tus necesidades.

¡Saludos!
« Última modificación: 27 Marzo 2017, 07:45 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Repetición de palabra en batch « 1 2 »
Scripting
javiii_11 13 4,889 Último mensaje 1 Diciembre 2010, 00:01
por javiii_11
contar caracteres de una palabra y devolver que palabra es en java
Java
Cooltan 4 21,945 Último mensaje 6 Abril 2011, 12:21
por Cooltan
[Código-Python]Contar repeticion de letras en un texto - JaAViEr|0x5d
Scripting
0x5d 1 10,396 Último mensaje 26 Abril 2012, 01:23
por Karcrack
Contar cuantas veces aparece una palabra en una frase
Scripting
minikarpin 2 1,803 Último mensaje 16 Marzo 2017, 04:58
por Eleкtro
JAVA- Como Contar la Repeticion de una palabra en una frase.
Java
a.p007 2 1,846 Último mensaje 17 Abril 2017, 03:49
por cunian
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines