Class HarfDizisi

java.lang.Object
net.zemberek.yapi.HarfDizisi
All Implemented Interfaces:
CharSequence, Comparable<HarfDizisi>

public class HarfDizisi extends Object implements CharSequence, Comparable<HarfDizisi>
Bu sinif Dil islemleri sirasinda Turkceye ozel islemler gerektiginden String-StringBuffer yerine kullanilir. String gibi genel bir tasiyici degil ara islem nesnesi olarak kullanilmasi onerilir. String'den farkli olarak "degistirilebilir" bir yapidadir ve Thread-safe degildir.
  • Field Details

    • BOS_DIZI

      public static final HarfDizisi BOS_DIZI
  • Constructor Details

    • HarfDizisi

      public HarfDizisi()
      default constructor. 7 boyutlu bir TurkceHarf referans dizisi olusturur.
    • HarfDizisi

      public HarfDizisi(int kapasite)
      'kapasite' boyutlu 'TurkceHarf' dizisine sahip nesne olusturur.
      Parameters:
      kapasite - baslangic olusan TurkceHarf[] boyu
    • HarfDizisi

      public HarfDizisi(String str, Alfabe alfabe, int kapasite)
      'kapasite' boyutlu 'TurkceHarf' dizisine sahip nesne olusturur. daha sonra girisi String'i icindeki karakterleri TurkceHarf seklinde TurkceHarf dizisine aktarir. Eger String boyu kapasiteden buyukse kapasite'yi boy'a esitler. Eger String icindeki karakter Alfabe'de yar almiyorsa "TANIMSIZ_HARF" harfi olarak eklenir.
      Parameters:
      str - ornek alincak String
      kapasite - baslangic olusan TurkceHarf[] boyu
      alfabe - ilgili alfabe
    • HarfDizisi

      public HarfDizisi(String str, Alfabe alfabe)
      Belirlenen alfabe ile String icerigini Harflere donusturur.
      Parameters:
      str - ornek alincak String
      alfabe - ilgili alfabe
    • HarfDizisi

      public HarfDizisi(HarfDizisi hdizi)
      Copy-Constructor. gelen harf dizisi ile ayni icerige sahip olacak sekilde TurkceHarf dizisi olusturur.
      Parameters:
      hdizi - ornek alinacak HarfDizisi
  • Method Details

    • sil

      public void sil()
      bu metod harf referansi dizisini serbest birakmaz, sadece boyu sifira indirir.
    • sonHarf

      public TurkceHarf sonHarf()
      Dizinin son harfini dondurur.
      Returns:
      varsa son harf, Yoksa TANIMSIZ_HARF.
    • sonSesli

      public TurkceHarf sonSesli()
      dizideki son sesliyi dondurur. eger dizi boyu 0 ise ya da sesli harf yoksa TANIMSIZ_HARF doner.
      Returns:
      varsa son sesli yoksa TANIMSIZ_HARF
    • ekle

      public HarfDizisi ekle(TurkceHarf harf)
      kelimenin sonuna harf ekler.
      Parameters:
      harf - eklenecek harf
      Returns:
      this
    • ekle

      public void ekle(int index, TurkceHarf harf)
      girilen pozisyona herf ekler, bu noktadan sonraki harfler otelenir. "armut" icin (2, a) "aramut" uretir.
      Parameters:
      index - eklenecek pozisyon
      harf - eklenecek harf.
      Throws:
      ArrayIndexOutOfBoundsException
    • ekle

      public HarfDizisi ekle(HarfDizisi hdizi)
      Diziye baska bir harf dizisinin icerigini ular.
      Parameters:
      hdizi - ulanacak harf dizisi.
      Returns:
      this.
    • ekle

      public HarfDizisi ekle(int index, HarfDizisi hdizi)
      Diziye baska bir harf dizisinin icerigini index ile belirtilen harften itibaren ekler. "armut" icin (2, hede) "arhedemut" uretir.
      Parameters:
      index - eklencek pozisyon
      hdizi - eklenecek harf dizisi
      Returns:
      this.
      Throws:
      ArrayIndexOutOfBoundsException
    • araDizi

      public HarfDizisi araDizi(int bas, int son)
    • harf

      public TurkceHarf harf(int i)
      verilen pozisyondaki harfi dondurur. icerigi "kedi" olan HarfDizisi icin harf(1) e dondurur.
      Parameters:
      i - istenilen pozisyondaki harf.
      Returns:
      girilen pozisyondaki harf, yoksa TANIMSIZ_HARF
    • ilkSesli

      public TurkceHarf ilkSesli(int basla)
      ilk sesliyi dondurur. eger sesli yoksa TANIMSIZ_HARF doner. aramaya belirtilen indeksten baslar.
      Parameters:
      basla - baslangic indeksi.
      Returns:
      varsa ilk sesli, yoksa TANIMSIZ_HARF
    • equals

      public boolean equals(Object o)
      Tam esitlik kiyaslamasi. kiyaslama nesne tipi, ardindan da TurkceHarf dizisi icindeki harflerin char iceriklerine gore yapilir.
      Overrides:
      equals in class Object
      Parameters:
      o - kiyaslanacak nesne
      Returns:
      true eger esitse.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • asciiToleransliKiyasla

      public boolean asciiToleransliKiyasla(HarfDizisi harfDizisi)
      ascii benzer harf toleransli esitlik kiyaslamasi.
      Parameters:
      harfDizisi - kiyaslanacak harfDizisi
      Returns:
      true eger esitse.
    • asciiToleransliAradanKiyasla

      public boolean asciiToleransliAradanKiyasla(int baslangic, HarfDizisi kelime)
    • asciiToleransliBastanKiyasla

      public boolean asciiToleransliBastanKiyasla(HarfDizisi giris)
    • aradanKiyasla

      public boolean aradanKiyasla(int baslangic, HarfDizisi kelime)
    • bastanKiyasla

      public boolean bastanKiyasla(HarfDizisi giris)
    • harfDegistir

      public void harfDegistir(int index, TurkceHarf harf)
      istenen noktadaki harfi giris parametresi olan TurkceHarf ile degistirir.
      Parameters:
      index - degistirilecek indeks.
      harf - kullanilacak harf
      Throws:
      ArrayIndexOutOfBoundsException
    • sonHarfYumusat

      public void sonHarfYumusat()
      son harfi yumusatir. Eger harfin yumusamis formu yoksa harf degismez.
    • sonHarfSil

      public void sonHarfSil()
      son harfi siler. eger harf yoksa hicbir etki yapmaz.
    • harfSil

      public HarfDizisi harfSil(int index)
      verilen pozisyondaki harfi siler. kelimenin kalan kismi otelenir. eger verilen pozisyon yanlis ise ArrayIndexOutOfBoundsException firlatir.

      "kedi" icin (2) "kei" olusturur.

      Parameters:
      index - silinecek harf pozisyonu
      Returns:
      dizinin kendisi.
      Throws:
      ArrayIndexOutOfBoundsException
    • harfSil

      public HarfDizisi harfSil(int index, int harfSayisi)
      verilen pozisyondan belli miktar harfi siler. "kediler" icin (2,2) "keler" olusturur.
      Parameters:
      index - silinmeye baslanacak pozisyon
      harfSayisi - silinecek harf miktari
      Returns:
      dizinin kendisi
    • ilkHarf

      public TurkceHarf ilkHarf()
      ilk harfi dondurur. eger harf yoksa TANIMSIZ_HARF doner.
      Returns:
      ilk TurkceHarf.
    • kirp

      public void kirp(int index)
      "index" numarali harften itibaren siler. "kedi" icin (1) "k" olusturur.
      Parameters:
      index - kirpilmaya baslanacak pozisyon
    • toString

      public String toString(int index)
      sadece belirli bir bolumunu String'e donusturur.
      Parameters:
      index - String'e donusum baslangic noktasi.
      Returns:
      olusan String.
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • compareTo

      public int compareTo(HarfDizisi o)
      Compare to metodu siralama icin kiyaslama yapar. Kiyaslama oncelikle harflerin alfabetik sirasina daha sonra dizilerin boyutuna gore yapilir.
      Specified by:
      compareTo in interface Comparable<HarfDizisi>
      Parameters:
      o - kiyaslanacak dizi.
      Returns:
      'kedi'.compareTo('kedi') -> 0 'kedi'.compareTo('ke') -> 2 (boy farki) 'kedi'.compareTo('kedm') -> -4 (i->m alfabetik sira farki) 'kedi'.compareTo(null) -> 1
    • sesliSayisi

      public int sesliSayisi()
      Genellikle kelimedeki hece sayisini bulmak icin kullanilir.
      Returns:
      inte, sesli harf sayisi.
    • hepsiBuyukHarfmi

      public boolean hepsiBuyukHarfmi()
      Returns:
      hepsi buyuk harf ise true, boy=0 dahil.
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence