Javada karakter sayisi bulma

Iyi gunler,

Benim sorunum su; java'da bir program yaziyorum. Program bir text dosyasini acip veya kullanicinin yazdigi bir cumlenin icerisinde kac tane kelime, toplam karakter sayisi, bosluk sayisi oldugunu bulup gosteriyor. Ihtiyacim olan hangi harften kac tane oldugunu da gostermesi. "Kelime icerisinde hangi harfi bulmak istiyorsun" degil de, mesela "hello world" cumlesinde h=1, e=1, l=3, o=2, w=1, r=1, d=1" seklinde. hashMap kullandim ancak bu sekilde butun karakterleri (noktalamalar ve ozel karakterler(%,&,{,[,})) de gosteriyor. Benim ihtiyacimsa sadece buyuk kucuk harf farketmeksizin hangi harften kac tane oldugu. GUI da jtextArea uzerinden analiz ediyorum cumleleri. Kullandigim compiler NetBeans. Cok tesekkur ederim simdiden.

    0

    Mustafa

    12 Mart 2015

    Arkadaslar hallettim derdimi. Eger isine yarayacak olursa, burdan alabilirler.   public static void main(String[] args) {      String sentence = "merhaba dunya. naaptin o isler?";     sentence = sentence.toLowerCase(); // Bulmak istedigimiz karakterlerin haritasini cikariyoruz. Buraya istediginiz karakteri ekleyip cikarabilirsiniz. // Ben sadece numara ve harfleri kullaniyorum.     String indexes = "0123456789abcdefghijklmnopqrstuvwxyz.?"; //Initialize an array to the size of the possible matches.     int[] count = new int[indexes.length()];      //Bulmak istedigimiz karakterleri kelimelerde aramak icin LOOP kullaniyoruz burada.     for (int i = 0; i < sentence.length(); i++) {     //Eger haritamizdaki karakterlerle uyusma varsa, karakter sayisini arttirir ve aramaya devam eder.     int index = indexes.indexOf(sentence.charAt(i));     //Eger aradigimiz karakterlerin hicbirini bulmazsak, yani girilen karakter haritada yoksa, system -1 gonderir.     // ornek verecek olursak karakter olarak "<>.{};:@' gibi karakterler kullanirsak, bunlar haritamizda olmadigi icin bulmaz.     if (index < 0)         continue;     count[index]++;     }     for (int i = 0; i < count.length; i++) {     if (count[i] < 1)         continue;     System.out.println(String.format("%s (%d) %s",             indexes.charAt(i),             count[i],             //Buradada buldugumuz karakter sayisi kadar * print yapmak icin bu kodu kullaniyoruz.             new String(new char[count[i]]).replace('\0', '*')));     } }

    0

    Mustafa

    06 Mart 2015

    Zamaniniz ve cevabiniz icin cok tesekkurler. Linklerdeki kodlar daha cok kelime sayimi icin. Ben kelime sayimini yazmistim ama linklerin birinde daha iyi bir kod vardi onunla degistirdim. Bana daha cok karakter sayimi lazim. Elimdeki kod HashMap ve ciktida butun karakterler gorunuyor ve karakterlerin isimlerini degistiremiyorum. Mesela kac satir oldugunu gosteriyor ama onu "Satir sayisi :" seklinde degistiremiyorum. Su an aklima butun karakterler icin bi for loop yazmak geliyor ama bu iyi bir kod degil. Cok fazla kodu bosuna yazmis olacagim. Daha cok mesela alfabeyi bir array icine yazip herbir karakteri tek tek bu array icinde saydirmak gibi birsey olabilir. Cevabin icin tekrar tesekkur ederim.

    0

    Ahmet Burak Demirkoparan

    06 Mart 2015

    Selamlar "count word in sentence with java" tarzı bi search ile şu kaynakları buldum işini görecektir. http://codereview.stackexchange.com/questions/31440/occurrence-of-a-word-in-a-sentence http://javahungry.blogspot.com/2013/06/count-number-of-words-in-string-example-java-program-code.html http://stackoverflow.com/questions/5864159/count-words-in-a-string-method http://stackoverflow.com/questions/24726512/counting-words-in-a-sentence

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.