/// <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); }
/// <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); }
/// <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); }
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); }
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); }
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); }
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); }
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); }
/// <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); }
public Kelime(Kok kok, HarfDizisi dizi) { this._kok = kok; this._icerik = dizi; _tip = kok.tip(); }
public Kelime(Kok kok, Alfabe alfabe) { this._kok = kok; _icerik = new HarfDizisi(kok.icerik(), alfabe); _tip = kok.tip(); }
public void icerikEkle(HarfDizisi eklenecek) { _icerik.ekle(eklenecek); }
public void setIcerik(HarfDizisi icerik) { this._icerik = icerik; }
public CharEnumerator(HarfDizisi hd) { harfDizisi = hd; }
/// <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); }