Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Frekvencija pojvljivanja karaktera

[es] :: .NET :: Frekvencija pojvljivanja karaktera

[ Pregleda: 3223 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
79.101.137.*

Sajt: www.cirasoft.co.cc


Profil

icon Frekvencija pojvljivanja karaktera09.10.2008. u 16:28 - pre 188 meseci
Kako da u c# odradim sledeci problem:

Potrebno mi je da za svaki ASCII karatker (cela ASCII tabela) pronadjem broj pojavljivanja u nekom tekstu.
Da li ima neko elegantnije resenje od dve for petlje? odnosno da li neka alatka (textbox, reachtextbox...) ima mogucnosti za brojanje pojavljivanja karaktera?


hvala unapred
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Frekvencija pojvljivanja karaktera09.10.2008. u 16:36 - pre 188 meseci
Dve fakin petlje?!
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
79.101.137.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: Frekvencija pojvljivanja karaktera09.10.2008. u 17:10 - pre 188 meseci
Neznam ni kakve su to petlje :).
Ma zanima me neka alatka koja to moze da uradi
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Frekvencija pojvljivanja karaktera09.10.2008. u 17:24 - pre 188 meseci
Šta će ti alatka za to, to se rešava jednom najprostijom petljom, manje od 10 linija čak i u C#-u. Evo ti rubi verzija pa prevodi, ili guglaj... ;)

>> def br_karaktera tekst
>> res = {}
>> tekst.split('').each{|c| res[c] = res[c] ? res[c] + 1 : 1}
>> res
>> end
>> br_karaktera 'riba ribi grize rep'
=> {" "=>3, "a"=>1, "b"=>2, "z"=>1, "p"=>1, "e"=>2, "g"=>1, "r"=>4, "i"=>4}
 
Odgovor na temu

marko1981
Marko Nikolic
Beograd

Član broj: 123059
Poruke: 144
*.BVCOM.NET.



Profil

icon Re: Frekvencija pojvljivanja karaktera09.10.2008. u 20:15 - pre 188 meseci
Citat:

... to se rešava jednom najprostijom petljom ...

Code:

    private const int arraySize = 256;

    public int Char2Ascii(char c)
    {
      return (int)c;
    }

    public char Ascii2Char(int i)
    {
      return (char)i;
    }

    public int[] NumOfChar(string text)
    {
      int[] numOfChar = new int[arraySize];

      for (int i = 0; i < text.Length; i++)
      {
        numOfChar[Char2Ascii(text[i])]++;
      }

      return numOfChar;
    }

    // i na primer upises u neki RichTextBox
    public void InsertTableIntoRichTextBox(string text)
    {
      int[] array = NumOfChar(text);

      for (int i = 0; i < array.Length; i++)
      {
        if (array[i] > 0)
        {
          this.myRichTextBox.AppendText(string.Format("{0} se pojavljuje {1} puta.\n", Ascii2Char(i), array[i]));
        }
      }
    }
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
79.101.137.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: Frekvencija pojvljivanja karaktera09.10.2008. u 21:49 - pre 188 meseci
hvala

pozz
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Frekvencija pojvljivanja karaktera10.10.2008. u 00:56 - pre 188 meseci
Mislim da je jablan pre mislio na nesdsot slicno ovome:

Code:

            string tekst;
            Dictionary<char, int> dict = new Dictionary<char, int>(256);
            Console.Write("Tekst: "); tekst = Console.ReadLine();
            foreach (char c in tekst)
                if (dict.ContainsKey(c)) dict[c]++; 
                else dict.Add(c, 1);
            foreach (var hist in dict) Console.WriteLine("'{0}' se pojavljuje {1} puta", hist.Key, hist.Value);
            Console.ReadLine();
            return 0;

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
79.101.181.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: Frekvencija pojvljivanja karaktera10.10.2008. u 15:53 - pre 188 meseci
e ovo je bas to sto mi treba, havla, ali ako moze jos jedna mala pomoc posto bas ne razumem ovo zadnje.

ja sam taj kod stavio u funkciju:
Code:

        private void BrojKaraktera(string tekst)
        {
            Dictionary<char, int> dict = new Dictionary<char, int>(256);
            foreach (char c in tekst)
                if (dict.ContainsKey(c)) dict[c]++;
                else dict.Add(c, 1);
            foreach (var hist in dict) Console.WriteLine("'{0}' se pojavljuje {1} puta", hist.Key, hist.Value);

        }


e ali bi rezultate smestio u ListView kontrolu, kako da ih izvucem? kako funkcionise ovo :Console.WriteLine("'{0}' se pojavljuje {1} puta", hist.Key, hist.Value);

i ne mogu da definisem hist tipa var, u cemu je problem?


hvala jos jednom
pozz

[Ovu poruku je menjao bciric dana 10.10.2008. u 17:34 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Frekvencija pojvljivanja karaktera10.10.2008. u 17:11 - pre 188 meseci
Sto bas ListView (nije bas zgodan za bindovanje)?

U svakom sluicaju mozes da promenis metod da umesto ispisa na konzolu transformise dictionary u List<string> listu koju onda mozes da bindujes gde god zelis:


Code:

        private List<string> BrojKaraktera(string tekst)
        {
            Dictionary<char, int> dict = new Dictionary<char, int>(256);
            foreach (char c in tekst)
                if (dict.ContainsKey(c)) dict[c]++;
                else dict.Add(c, 1);
            var list = from e in dict select string.Format("'{0}' se pojavljuje {1} puta", e.Key, e.Value);
            return list.ToList();
        }

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Frekvencija pojvljivanja karaktera10.10.2008. u 17:52 - pre 188 meseci
Code:

Console.Write("Enter text: ");
Char[] TextChars = Console.ReadLine().ToCharArray();
for (int i = 1; i < 256; i++) {
    int CharCount = 0;
    CharCount = TextChars.Count(c => (int)c == i);
    if (CharCount > 0)
        Console.WriteLine("'{0}' se pojavljuje {1} puta", ((char)i).ToString(), CharCount);
}
Console.ReadLine();


:)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Frekvencija pojvljivanja karaktera10.10.2008. u 22:01 - pre 188 meseci
Hehe, a mozemo da iskombinujemo i lambdu i linq da dobijemo resenje bez counter varijabli i state niza gde ce linq da nam grupise i prebroji karaktere

Code:
            Console.Write("Enter text: ");
            var samolinq = from c in Console.ReadLine()
                           group c by c into cgroup
                           orderby cgroup.Key
                           select new { c = cgroup.Key, cnt = cgroup.Count() };
            samolinq.ToList().ForEach(s => Console.WriteLine("'{0}' se pojavljuje {1} puta", s.c, s.cnt));
            Console.ReadLine();

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
77.46.251.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: Frekvencija pojvljivanja karaktera13.10.2008. u 21:58 - pre 188 meseci
uuuuuuuuaaaaaaaaaaaaaauuuuuuuuuuuu

ovo zadnje jos nisam probao ali mi deluje kao da je to sto mi treba,

hvala svima na korisnim savetima. (jos se i rimuje :))
 
Odgovor na temu

[es] :: .NET :: Frekvencija pojvljivanja karaktera

[ Pregleda: 3223 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.