コード例 #1
0
        /// <summary> Tam esitlik kiyaslamasi. kiyaslama nesne tipi, ardindan da TurkceHarf dizisi icindeki
        /// harflerin char iceriklerine gore yapilir.
        ///
        /// </summary>
        /// <param name="o">kiyaslanacak nesne
        /// </param>
        /// <returns> true eger esitse.
        /// </returns>
        public override bool Equals(System.Object o)
        {
            if (o == null)
            {
                return(false);
            }
            if (this == o)
            {
                return(true);
            }
            if (!(o is HarfDizisi))
            {
                return(false);
            }

            HarfDizisi harfDizisi = (HarfDizisi)o;

            if (boy != harfDizisi.boy)
            {
                return(false);
            }
            for (int i = 0; i < boy; i++)
            {
                if (this.dizi[i].charDeger() != harfDizisi.dizi[i].charDeger())
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Diziye baska bir harf dizisinin icerigini index ile belirtilen harften itibaren ekler.
        /// "armut" icin (2, hede) "arhedemut" uretir.
        /// </summary>
        /// <param name="index">eklencek pozisyon
        /// </param>
        /// <param name="hdizi">eklenecek harf dizisi
        /// </param>
        /// <returns> this.
        /// </returns>
        /// <throws>  ArrayIndexOutOfBoundsException </throws>
        public virtual HarfDizisi ekle(int index, HarfDizisi hdizi)
        {
            if (index < 0 || index > boy)
            {
                throw new System.IndexOutOfRangeException("indeks degeri:" + index + " fakat harf dizi boyu:" + boy);
            }

            //dizi kapasitesini ayarla
            int hboy = hdizi.Length;

            if (boy + hboy > dizi.Length)
            {
                kapasiteAyarla(hboy);
            }

            //sondan baslayarak this.dizinin index'ten sonraki kismini dizinin sonuna tasi
            for (int i = hboy + boy - 1; i >= hboy; i--)
            {
                dizi[i] = dizi[i - hboy];
            }

            //gelen diziyi kopyala ve boyutu degistir.
            Array.Copy(hdizi.dizi, 0, dizi, index, hboy);
            boy += hdizi.Length;
            return(this);
        }
コード例 #3
0
        /// <summary>
        /// Diziye baska bir harf dizisinin icerigini ular.
        /// </summary>
        /// <param name="hdizi">ulanacak harf dizisi.
        /// </param>
        /// <returns> this.
        /// </returns>
        public virtual HarfDizisi ekle(HarfDizisi hdizi)
        {
            int hboy = hdizi.Length;

            if (boy + hboy > dizi.Length)
            {
                kapasiteAyarla(hboy);
            }

            Array.Copy(hdizi.dizi, 0, dizi, boy, hboy);
            boy += hdizi.Length;
            return(this);
        }
コード例 #4
0
ファイル: Kok.cs プロジェクト: mgokturkayan/nzemberek
        public virtual HarfDizisi ozelDurumUygula(Alfabe alfabe, Ek ek)
        {
            HarfDizisi dizi = new HarfDizisi(this._icerik, alfabe);

            foreach (KokOzelDurumu ozelDurum in ozelDurumlar)
            {
                if (ozelDurum.yapiBozucumu() && ozelDurum.olusabilirMi(ek))
                {
                    ozelDurum.uygula(dizi);
                }
                if (!ozelDurum.olusabilirMi(ek) && ozelDurum.ekKisitlayiciMi())
                {
                    return(null);
                }
            }
            return(dizi);
        }
コード例 #5
0
 public bool bastanKiyasla(HarfDizisi giris)
 {
     if (giris == null)
     {
         return(false);
     }
     if (giris.Length > this.boy)
     {
         return(false);
     }
     for (int i = 0; i < giris.Length; i++)
     {
         if (dizi[i].charDeger() != giris.harf(i).charDeger())
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #6
0
 public bool aradanKiyasla(int baslangic, HarfDizisi kelime)
 {
     if (kelime == null)
     {
         return(false);
     }
     if (boy < baslangic + kelime.Length)
     {
         return(false);
     }
     for (int i = 0; i < kelime.Length; i++)
     {
         if (dizi[baslangic + i].charDeger() != kelime.harf(i).charDeger())
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #7
0
 public bool asciiToleransliBastanKiyasla(HarfDizisi giris)
 {
     if (giris == null)
     {
         return(false);
     }
     if (giris.Length > this.boy)
     {
         return(false);
     }
     for (int i = 0; i < giris.Length; i++)
     {
         if (!dizi[i].asciiToleransliKiyasla(giris.harf(i)))
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #8
0
 public bool asciiToleransliAradanKiyasla(int baslangic, HarfDizisi kelime)
 {
     if (kelime == null)
     {
         return(false);
     }
     if (boy < baslangic + kelime.Length)
     {
         return(false);
     }
     for (int i = 0; i < kelime.Length; i++)
     {
         if (!dizi[baslangic + i].asciiToleransliKiyasla(kelime.harf(i)))
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #9
0
 /// <summary> ascii benzer harf toleransli esitlik kiyaslamasi.
 ///
 /// </summary>
 /// <param name="harfDizisi">kiyaslanacak harfDizisi
 /// </param>
 /// <returns> true eger esitse.
 /// </returns>
 public bool asciiToleransliKiyasla(HarfDizisi harfDizisi)
 {
     if (harfDizisi == null)
     {
         return(false);
     }
     if (this == harfDizisi)
     {
         return(true);
     }
     if (boy != harfDizisi.boy)
     {
         return(false);
     }
     for (int i = 0; i < boy; i++)
     {
         if (!dizi[i].asciiToleransliKiyasla(harfDizisi.dizi[i]))
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #10
0
 public Kelime(Kok kok, HarfDizisi dizi)
 {
     this._kok    = kok;
     this._icerik = dizi;
     _tip         = kok.tip();
 }
コード例 #11
0
 public Kelime(Kok kok, Alfabe alfabe)
 {
     this._kok = kok;
     _icerik   = new HarfDizisi(kok.icerik(), alfabe);
     _tip      = kok.tip();
 }
コード例 #12
0
 public void icerikEkle(HarfDizisi eklenecek)
 {
     _icerik.ekle(eklenecek);
 }
コード例 #13
0
 public void setIcerik(HarfDizisi icerik)
 {
     this._icerik = icerik;
 }
コード例 #14
0
 public CharEnumerator(HarfDizisi hd)
 {
     harfDizisi = hd;
 }
コード例 #15
0
 /// <summary>
 /// Copy-Constructor. gelen harf dizisi ile ayni icerige sahip olacak sekilde TurkceHarf dizisi olusturur.
 /// </summary>
 /// <param name="hdizi">ornek alinacak HarfDizisi
 /// </param>
 public HarfDizisi(HarfDizisi hdizi)
 {
     boy  = hdizi.Length;
     dizi = new TurkceHarf[boy];
     Array.Copy(hdizi.dizi, 0, dizi, 0, boy);
 }