Visualizzazione dei risultati da 1 a 5 su 5

Discussione: C # ContaParole

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    77

    C # ContaParole

    Salve rgazzi ho un problema ho una frase e mi servirebbe qualcosa che quando trova lo spazio faccia scattare di 1no un contatore please mi aiutate ? grz in partenza

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    dov'è il problema? e il codice che hai fatto?

    senza quello da dove partiamo?

    Immagino tu abbia una frase in una stringa, usa la funzione Split sullo spazio e avrai un array di stringhe contenenti le parole.. le conti e hai il numero di parole

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    77
    grz ora dovrei praticamente contare le parole e questo nn è un problema con una semplice variabile ma devo vedere se le parole sono doppie all'interno della stringa .. mi servirebbe qualche idea cmq ora posto il codice

    static void Main(string[] args)
    {
    // **** Variabili ****
    string frase;
    string[] fraseArray;
    int contaParole = 0;




    // **** ****

    Console.Write("Dammi una frase : ");
    frase = Convert.ToString(Console.ReadLine());
    frase.Trim();//levo spazi iniziali e finali
    PulisciFrase(ref frase);
    // contare le parole
    fraseArray = frase.Split(' ');
    foreach (string v in fraseArray)
    {
    if (v.Trim() != "")

    contaParole++;
    }

    Console.WriteLine("la frase contiene {0} parole\n ", contaParole);

    Console.WriteLine(" **** ****");
    Console.WriteLine("\nStampo le parole sullo schermo : ");
    foreach (string v in fraseArray)
    {
    if (v.Trim() != "")
    Console.WriteLine("{0}", v);
    }
    Console.WriteLine(" **** ****");
    }


    //pulisce la frase cn i replace levando i segni di punteggiatura e mettendo gli spazi


    static void PulisciFrase(ref string frase)
    {
    string fraseNoVirgole = "", fraseNoPunti = "", frasePulita = "";
    string fraseNoPuntoInterr = "", fraseNoPuntoVirgola = "", fraseNoPuntoEscalamativo = "";


    for (int i = 0; i < frase.Length; i++)
    {
    fraseNoVirgole = frase.Replace(',', ' ');
    fraseNoPunti = fraseNoVirgole.Replace('.', ' ');
    fraseNoPuntoEscalamativo = fraseNoPunti.Replace('!', ' ');
    fraseNoPuntoVirgola = fraseNoPuntoEscalamativo.Replace(';', ' ');
    fraseNoPuntoInterr = fraseNoPuntoVirgola.Replace('?', ' ');
    frase = fraseNoPuntoInterr;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    8
    Potresti ordinare l'array in ordine alfabetico, poi in un ciclo fai il confronto tra l'elemento i e i+1 se sono uguali elimini (o sostituisci così nn modifichi la lunghezza) dall'array l'elemento i e continui ripentendo il ciclo dall'elemento appena cancellato/sostituito ovvero i+1.
    Ovviamente devi fare attenzione a non sforare gli indici dell'array!
    Ti conviene utilizzare l'oggetto ArrayList in quanto trovi tutti i metodi per eliminare rimuovere e ordinare gli elementi.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    8
    ecco un esempio in console:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;

    namespace ConsoleApplication2
    {
    class Program
    {
    static void Main(string[] args)
    {
    ArrayList myarray = new ArrayList();

    myarray.Add("a");
    myarray.Add("a");
    myarray.Add("ciao");
    myarray.Add("prova");
    myarray.Add("come");
    myarray.Add("stai");
    myarray.Add("elimina");
    myarray.Add("elimina");
    myarray.Add("elimina");
    myarray.Add("elimina");
    myarray.Add("andiamo");
    myarray.Add("iPod");

    myarray.Sort();
    ArrayList arrOrdinato = new ArrayList();


    for (int i = 0;i < myarray.Count; i++)
    {
    if (i < myarray.Count-1)
    {
    if (myarray[i].ToString() == myarray[i + 1].ToString())
    {
    myarray[i] = null;
    }
    }
    else
    {
    if (myarray[i-1].ToString() == myarray[i].ToString())
    {
    myarray[i] = null;
    }
    }
    }

    //Ripulisci
    CleanList(myarray);

    //Stampa array definitivo
    Print(myarray);

    Console.ReadLine();
    }



    private static ArrayList CleanList(ArrayList a)
    {
    int len = a.Count;

    for (int i = 0; i <= len-1; i++)
    {
    if (a[i]==null)
    {
    a.RemoveAt(i);
    len = a.Count;
    }
    }
    if (a.Contains(null))
    {
    CleanList(a);
    }
    return a;
    }

    private static void Print(ArrayList a)
    {
    Console.WriteLine("------");
    for (int i = 0; i <= a.Count-1; i++)
    {
    Console.WriteLine(a[i].ToString());
    }
    Console.WriteLine("------");
    }
    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.