TurkProgrammers.NeT
Ana sayfa Ana Sayfa | Ana sayfanız yapın | Sık kullanılanlara ekle | Rss/Rdf Besleme| JavaScript
Bölümler
Arşiv
paz sa ça cu cum pa
12345
6789101112
13141516171819
20212223242526
272829

Mailinizi ekleyin
Haberlere abone olun:

anket: Sayfamızda En çok hangi bölüm ilginizi çekmekte
Sayfamızda En çok hangi bölüm yani programlama dili ve makaleleri ilginizi çekmekte?
PHP
C / C++ / C#
Asp ve .NET
JS / Ajax / DHTML /HTML
SQL
Visual Basic
Güvenlik
Action Script
Diğer
Anket sonuçları | Eski Anketler


email Arkadaşınızın maili | print Yazıcı versionu | comment Yanıtlar (0 Gönder)

Kelimeyi Hecelere Ayıran Sınıf (class)

by caner kuru on Kasım 07,2008

image
Önceki gönderdiğim, fonksiyon tabanlı bir yapıydı ve fonksiyon isimleri tembelliğimden kaynaklı, hiçbirşey anlatmayan isimlerdi. Şimdi fonksiyon isimlerini anlaşılır yaptım ve bu fonksiyonları static bir sınıf altında topladım. Entegrasyonu ve kullanımı kolaylaştırdım. Önceki örnekten çok daha iyi oldu. Kullanımı ise oldukça basit. Hece.Hecele(\\"Hecelenecek Metin\\") -> He-ce-le-ne-cek Me-tin döndürür.


    public static class Hece
    {
        static char[] Sesliler = { 'a', 'e', 'ı', 'i', 'o', 'ö', 'u', 'ü' };
        static string HecelenmisKelime = "";
        
        static bool Seslimi(char c)
        {
            foreach (char cx in Sesliler)
            {
                if (c == cx)
                    return true;
            }

            return false;
        }

        static int SesliyiBul(string w)
        {
            for (int i = 0; i < w.Length; i++)
                if (Seslimi(w[i]))
                    return i;
            return -1;
        }

        static string TireKoy()
        {
            return (HecelenmisKelime == "") ? "" : "-";
        }

        static void KelimeyiHecele(string w)
        {
            int i = SesliyiBul(w);
            if (i == -1)
                HecelenmisKelime += w;
            else
            {
                if (i == 0)
                {
                    //abba abac abb aba
                    if (w.Length > 1 && Seslimi(w[1]))
                    {
                        HecelenmisKelime += TireKoy() + w.Substring(0, 1);
                        KelimeyiHecele(w.Substring(1));
                    }
                    else
                    {


                        if (w.Length > 3)
                        {
                            if (Seslimi(w[2]))
                            {
                                HecelenmisKelime += TireKoy() + w.Substring(0, 1);
                                KelimeyiHecele(w.Substring(1));
                            }
                            else
                            {
                                HecelenmisKelime += TireKoy() + w.Substring(0, 2);
                                KelimeyiHecele(w.Substring(2));
                            }
                        }
                        else if (Seslimi(w[2]))
                        {
                            HecelenmisKelime += TireKoy() + w.Substring(0, 1);
                            KelimeyiHecele(w.Substring(1));
                        }
                        else
                            HecelenmisKelime += TireKoy() + w;
                    }
                }
                else if (i == 1)
                {
                    if (w.Length > 3)
                    {
                        if (Seslimi(w[2]))
                        {
                            HecelenmisKelime += TireKoy() + w.Substring(0, 2);
                            KelimeyiHecele(w.Substring(2));
                        }
                        else// if(w.Length>4)
                        {
                            if (Seslimi(w[3]))
                            {
                                HecelenmisKelime += TireKoy() + w.Substring(0, 2);
                                KelimeyiHecele(w.Substring(2));
                            }
                            else if (w.Length > 4 && !Seslimi(w[4]))
                            {
                                HecelenmisKelime += TireKoy() + w.Substring(0, 4);
                                KelimeyiHecele(w.Substring(4));
                            }
                            else
                            {
                                HecelenmisKelime += TireKoy() + w.Substring(0, 3);
                                KelimeyiHecele(w.Substring(3));
                            }
                        }

                    }
                    else
                        HecelenmisKelime += TireKoy() + w;
                }
                else
                {
                    if (w.Length > 4)
                    {
                        if (Seslimi(w[4]))
                        {
                            HecelenmisKelime += TireKoy() + w.Substring(0, 3);
                            KelimeyiHecele(w.Substring(3));
                        }
                        else
                        {
                            HecelenmisKelime += TireKoy() + w.Substring(0, 4);
                            KelimeyiHecele(w.Substring(4));
                        }
                    }
                    else
                        HecelenmisKelime += TireKoy() + w;
                }
            }
        }

        public static string Hecele(string rS)
        {
            string HecelenmisMetin = "";
            foreach (string s in rS.Split(' '))
            {
                HecelenmisKelime = "";
                KelimeyiHecele(s);
                HecelenmisMetin += HecelenmisKelime + " ";
            }
            return HecelenmisMetin;
        }
    }

365 Kere okundu

Bu makaleyi beyendinizmi ?

1 2 3 4 5 Rating: 5.00Rating: 5.00Rating: 5.00Rating: 5.00Rating: 5.00 (Toplam 38 Oylar)
comment Yanıtlar (0 Gönder)
Çok okunanlar
En Çok Yorumlananlar
Yazarlar