folder Tahribat.com Forumları
linefolder Java
linefolder [Java]Kelime Ayıklayıcı



[Java]Kelime Ayıklayıcı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Roark
    Roark's avatar
    Kayıt Tarihi: 12/Ağustos/2011
    Erkek

    Herkese merhabalar , java - swing ile uğraşırken böyle basit düzeyde bir kelime ayıklamak ve saymak için bir gui yaptım. 

    Belki birilerinin işine yarar, belki kimsenin işine yaramaz :) 

    Değinmek istediğim noktalar : 

    1-Tekrar bir metin işlemi yapmak istenirse , program tekrar açılıp kapanması gerekiyor aksi halde , total word'e ekleme yapıyor. 
    2-Clear butonu koydum ne yapıp etsem de kelimeleri sıfırladım , herşeyi sıfırladım ama total değişkenini arkaplan da bir türlü sıfırlayamadıgım için en sonunda clear butonunu kaldırdım. 
    3-Sıkıntısı ve sormak istediğim olay ise şu , tasarımlar da textfield , label'ları nasıl aynı düzende yerleştiriyorsunuz? yani ben ne kadar uğraştıysam da en son program calıstıgın da yine milimetrik kaymalar oluyor , oranları nasıl ayarlıyorsunuz ? yani label'ları nasıl dümdüz yapabiliriz :) 
    4-JRE 1.0.0 sonra ki tüm JRE'lerde calısıyor o sıkıntı olmayabilir. 
    5-3milyon karaktere kadar test ettim. ( stack filanda denedim ama en hızlı sonucu array tipinde alabildim ) 
    6-Uğraşılarak kelimeler bir pasta grafiği ya da bir eksen üzerinde grafik olarak en çok kullanılanı gösterilebilir gibi. 

    GIF hali : 

     

    İndirmek isteyenler için : 

    http://dosya.co/q3gkvy8dirhg/frequency.exe.html

     

     

     

     

    Roark tarafından 27/May/18 19:49 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Kodları görürsek daha iyi olur. Decompile ettiğimde total word'ün neden düzgün çalışmadığını göremiyorum. Hatta total word değil de total char sanırım. Sözcükleri değil de harfleri saydırıyorsun olmalısın. Sözcükleri saydırmak apayrı bir iş:) Bu konuda regex'ten yararlanabilirsin (ya da sözcüğü bölen karakterleri saydırabilirsin. Bunlar \t, \r, \n, \x20, nokta, virgül, çift nokta, noktalı virgül, ", ' ... ya da harf olmayan şeylerin tamamı).

    Üçüncü sorun için senin sıkıntın fontta olabilir. Courier gibi her harfin genişliği sabit bir font kullanırsan farkı göreceksin. Bir de parametrik olarak kullan. Kendin ver x ve y konumlarını.

     


    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    2- total degiskenini nerde tutuyosun hocam ? sınıfın içinde property olarak tanımla,

    class sinif {

    public int total;

     

     

    gibi

    sonra this.total = 0; dersin sifirlanir


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Roark
    Roark's avatar
    Kayıt Tarihi: 12/Ağustos/2011
    Erkek
    YeniHarman bunu yazdı

    Kodları görürsek daha iyi olur. Decompile ettiğimde total word'ün neden düzgün çalışmadığını göremiyorum. Hatta total word değil de total char sanırım. Sözcükleri değil de harfleri saydırıyorsun olmalısın. Sözcükleri saydırmak apayrı bir iş:) Bu konuda regex'ten yararlanabilirsin (ya da sözcüğü bölen karakterleri saydırabilirsin. Bunlar \t, \r, \n, \x20, nokta, virgül, çift nokta, noktalı virgül, ", ' ... ya da harf olmayan şeylerin tamamı).

    Üçüncü sorun için senin sıkıntın fontta olabilir. Courier gibi her harfin genişliği sabit bir font kullanırsan farkı göreceksin. Bir de parametrik olarak kullan. Kendin ver x ve y konumlarını.

     

    // text değeri alınması ve char olarak işlemler
    				text = textArea.getText();
    				try{
    					char ccc = text.charAt(0);
    					}
    				catch(java.lang.StringIndexOutOfBoundsException ex) 
    				{
    					if(textArea.getText().equals("")) 
    					{
    						JOptionPane.showMessageDialog(null, warning);
    					}
    				}
    				char[] char_arr = text.toCharArray();
    				startTime = System.currentTimeMillis();
    			
    				for(Character j : char_arr) 
    				{
    					
    					{
    				
    					}
    					if(j.equals('a') || j.equals('A')) 
    					{
    						a++;
    						
    					}
    					if(j.equals('b') || j.equals('B')) 
    					{
    						b++;
    					}
    
    
    // a lbl değerleri de şöyle değişiyor 
    
    Albl.setText(Integer.toString(a));
    Blbl.setText(Integer.toString(b));
    Clbl.setText(Integer.toString(c));


    Ana kodları yukarıda verdim sanırım , aslında dizeler ile de yapılabilirdi eşleştirmeli olarak diye düşünüyorum ama böyle uzun uzun yazdım açık olsun diye , ama dizeler ile de ugrasabilirim. Evet total word aslında karakterleri sayıyor :) yani şöyle a karakterini arıtıyorum , işlem bittigin de a değeri mesela 30 ' sa total = a+b+c+d+e gibi gidiyor. Her karakter sayısını ( a,b,c,d,e ) tek bir total değişkeninde topluyorum , en geniş sınıf içerisine public int total; dedigim de diğer buton içerisin de this. dedigim de total field'e ulasamıyorum
    Teşekkür etmek istediğim konular : regex duydum ama ne iş yaptığını bilmiyordum arastırıyorum şimdi , Courier font'un her harfinin genişliğinin sabit oldugunu öğrendim , parametrik olarak kullanmak sanırım matematik'le alakalı ve en zayıf oldugum nokta matematik diyebilirim , çok teşekkür ederim.

     

     

    @yolbulucu :  field olarak tanımlama yapsam da ' this. ' dediğimde field'e ulasamıyorum , acaba eclipse ıde'sin de sürekli alt alta olusturmasından dolayı sınıfların kapsam alanlarını mı karıstırıyorum ona bakacağım. "  property " ilk defa duydum , araştırdım total değişkenini @getter @setter int total; olarak tanımladım ama yine olmadı , clear butonu içerisinde total'e ulasamıyorum.  property'i araştırmam lazım , çok teşekkür ederim. 

     

     

     

    Roark tarafından 28/May/18 05:36 tarihinde düzenlenmiştir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    Roark bunu yazdı
    YeniHarman bunu yazdı

    Kodları görürsek daha iyi olur. Decompile ettiğimde total word'ün neden düzgün çalışmadığını göremiyorum. Hatta total word değil de total char sanırım. Sözcükleri değil de harfleri saydırıyorsun olmalısın. Sözcükleri saydırmak apayrı bir iş:) Bu konuda regex'ten yararlanabilirsin (ya da sözcüğü bölen karakterleri saydırabilirsin. Bunlar \t, \r, \n, \x20, nokta, virgül, çift nokta, noktalı virgül, ", ' ... ya da harf olmayan şeylerin tamamı).

    Üçüncü sorun için senin sıkıntın fontta olabilir. Courier gibi her harfin genişliği sabit bir font kullanırsan farkı göreceksin. Bir de parametrik olarak kullan. Kendin ver x ve y konumlarını.

     

    // text değeri alınması ve char olarak işlemler
    				text = textArea.getText();
    				try{
    					char ccc = text.charAt(0);
    					}
    				catch(java.lang.StringIndexOutOfBoundsException ex) 
    				{
    					if(textArea.getText().equals("")) 
    					{
    						JOptionPane.showMessageDialog(null, warning);
    					}
    				}
    				char[] char_arr = text.toCharArray();
    				startTime = System.currentTimeMillis();
    			
    				for(Character j : char_arr) 
    				{
    					
    					{
    				
    					}
    					if(j.equals('a') || j.equals('A')) 
    					{
    						a++;
    						
    					}
    					if(j.equals('b') || j.equals('B')) 
    					{
    						b++;
    					}
    
    
    // a lbl değerleri de şöyle değişiyor 
    
    Albl.setText(Integer.toString(a));
    Blbl.setText(Integer.toString(b));
    Clbl.setText(Integer.toString(c));


    Ana kodları yukarıda verdim sanırım , aslında dizeler ile de yapılabilirdi eşleştirmeli olarak diye düşünüyorum ama böyle uzun uzun yazdım açık olsun diye , ama dizeler ile de ugrasabilirim. Evet total word aslında karakterleri sayıyor :) yani şöyle a karakterini arıtıyorum , işlem bittigin de a değeri mesela 30 ' sa total = a+b+c+d+e gibi gidiyor. Her karakter sayısını ( a,b,c,d,e ) tek bir total değişkeninde topluyorum , en geniş sınıf içerisine public int total; dedigim de diğer buton içerisin de this. dedigim de total field'e ulasamıyorum
    Teşekkür etmek istediğim konular : regex duydum ama ne iş yaptığını bilmiyordum arastırıyorum şimdi , Courier font'un her harfinin genişliğinin sabit oldugunu öğrendim , parametrik olarak kullanmak sanırım matematik'le alakalı ve en zayıf oldugum nokta matematik diyebilirim , çok teşekkür ederim.

     

     

    @yolbulucu :  field olarak tanımlama yapsam da ' this. ' dediğimde field'e ulasamıyorum , acaba eclipse ıde'sin de sürekli alt alta olusturmasından dolayı sınıfların kapsam alanlarını mı karıstırıyorum ona bakacağım. "  property " ilk defa duydum , araştırdım total değişkenini @getter @setter int total; olarak tanımladım ama yine olmadı , clear butonu içerisinde total'e ulasamıyorum.  property'i araştırmam lazım , çok teşekkür ederim. 

     

     

     

    tum kodunu zipleyip atsana ? bir de eclipse degil netbeans kullanmani oneririm,

    bu arada su sekilde yapabilirsin 

    org.springframework.util.StringUtils.countOccurrencesOf("uzun string", "i");  ->boyle bir sinif varmis

    char lar ++ ile arttirabilirsin

    char letter = 'a';

    for(i=1;i < 28; i++){ //her harf icin bir tur atsin

    org.springframework.util.StringUtils.countOccurrencesOf("uzun string", letter); //bu veriyi eklersin artik bi yerlere

    letter++;

    }


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
Toplam Hit: 2523 Toplam Mesaj: 5
karakter ayıklama