C# Metni Hecelere Ayırma

2020-04-05 16:02:34
C# ile metni hecelere ayırma işlemi.C# metin parçalama.Türkçe dil kurallarına dikkat ederek hecelere ayırma
public string HecelereAyir(string cumle)
        {
            const string sesliHarfler = "aeıioöuüAEIİOÖUÜ";
            const string sessizHarfler = "bçdfgğhjklmnprsştvyzBÇDFGĞHJKLMNPRSŞTVYZ";
            const string karakterler = ("., ;\'!?\"");
            cumle = (cumle + " ");
            string hecele = "";
            int a = 1;

            baslangic:

            for (int i = a; (i <= cumle.Length); i++)
            {
                //Önce karakterleri kontrol et. Eğer boşluk varsa döngüyü tekrar çalıştır
                if (((karakterler.IndexOf(cumle.Substring((i - 1), 1), 0) + 1) > 0))
                {
                    // boşluk ise direkt başa dön 
                    hecele = (hecele + cumle.Substring((a - 1), 1));
                    a++;
                    goto baslangic;
                }

                if (((sessizHarfler.IndexOf(cumle.Substring((i - 1), 1), 0) + 1) > 0))
                {
                    // ilk harf sessiz 
                    if (((sesliHarfler.IndexOf(cumle.Substring(i, 1), 0) + 1) > 0))
                    {
                        // ikinci harf sesli 
                        if (((sessizHarfler.IndexOf(cumle.Substring((i + 1), 1), 0) + 1) > 0))
                        {
                            // Üçüncü harf sessiz 
                            if (((sesliHarfler.IndexOf(cumle.Substring((i + 2), 1), 0) + 1) > 0))
                            {
                                // dördüncü  harf sesli ise ilk iki harf hecedir. 
                                hecele = (hecele + (cumle.Substring((a - 1), 2) + "-"));
                                a += 2;
                                goto baslangic;
                            }

                            if (((sessizHarfler.IndexOf(cumle.Substring((i + 2), 1), 0) + 1) > 0))
                            {
                                // dördüncü harf te sessiz 
                                if (((sesliHarfler.IndexOf(cumle.Substring((i + 3), 1), 0) + 1) > 0))
                                {
                                    // 5.harf sesli ise ilk 3 harf hecedir. 
                                    hecele = (hecele + (cumle.Substring((a - 1), 3) + "-"));
                                    a += 3;
                                    goto baslangic;
                                }

                                if (((sessizHarfler.IndexOf(cumle.Substring((i + 3), 1), 0) + 1) > 0))
                                {
                                    // 5.harf sessiz ise ilk 4 harf hecedir. 
                                    hecele = (hecele + (cumle.Substring((a - 1), 4) + "-"));
                                    a += 4;
                                    goto baslangic;
                                }
                            }
                        }

                        if (((sesliHarfler.IndexOf(cumle.Substring((i + 1), 1), 0) + 1) > 0))
                        {
                            // Üçüncü harf sesli ise ilk iki harf hecedir. 
                            hecele = (hecele + (cumle.Substring((a - 1), 2) + "-"));
                            a += 2;
                            goto baslangic;
                        }
                    }

                    if (((sessizHarfler.IndexOf(cumle.Substring(i, 1), 0) + 1) > 0))
                    {
                        // ikinci de sessiz ise ilk 4 harf hecedir. 
                        hecele = (hecele + (cumle.Substring((a - 1), 4) + "-"));
                        a += 4;
                        goto baslangic;
                    }
                }

                if (((sesliHarfler.IndexOf(cumle.Substring((i - 1), 1), 0) + 1) > 0))
                {
                    // ilk harf sesli 
                    if (((sessizHarfler.IndexOf(cumle.Substring(i, 1), 0) + 1) > 0))
                    {
                        // ikinci harf sessiz 
                        if (((sessizHarfler.IndexOf(cumle.Substring((i + 1), 1), 0) + 1) > 0))
                        {
                            // Üçüncü harf sessiz. 
                            if (((sesliHarfler.IndexOf(cumle.Substring((i + 2), 1), 0) + 1) > 0))
                            {
                                // Dördüncü harf sesli ise ilk iki harf hecedir. 
                                hecele = (hecele + (cumle.Substring((a - 1), 2) + "-"));
                                a += 2;
                                //      goto baslangic;
                            }

                            if (((sessizHarfler.IndexOf(cumle.Substring((i + 2), 1), 0) + 1) > 0))
                            {
                                // dördüncü harf te sessiz ise ilk üç harf hecedir. 
                                hecele = (hecele + (cumle.Substring((a - 1), 3) + "-"));
                                a += 3;
                                goto baslangic;
                            }
                        }

                        if (((sesliHarfler.IndexOf(cumle.Substring((i + 1), 1), 0) + 1) > 0))
                        {
                            // Üçüncü harf sesli.Bu durumda ilk harf hece demektir. 
                            hecele = (hecele + (cumle.Substring((a - 1), 1) + "-"));
                            a++;
                            goto baslangic;
                        }
                    }
                }
            }
            return hecele;
        }​

 textBox2.Text = HecelereAyir(textBox1.Text);
​
Cevap Yazmak İçin Giriş Yapınız..