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
1234
567891011
12131415161718
19202122232425
262728293031

Mailinizi ekleyin
Haberlere abone olun:

anket: Web Programcılığının Geleceğini nasıl görüyorsunuz
Web Programcılığının Geleceğini nasıl görüyorsunuz?
Önü Fazlası ile açık
ilerde yapacak web sitesi kalmayacak
Hazır sistemler işleri iyice bitirecek
Bugünden daha kötü olamaz
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;
        }
    }

126 Kere okundu

Bu makaleyi beyendinizmi ?

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