Java ile Metinde En Çok Geçen Kelimeyi Bulma – Bir metin içerisinde en çok tekrar eden kelimeyi bulmak, yazılım geliştiricilerin sık karşılaştığı problemlerdendir. Özellikle metin analizi, log analizi, doğal dil işleme ve veri işleme uygulamalarında bu tür algoritmalar oldukça kullanılır.
Bu yazıda Java programlama dili kullanarak bir metinde en çok geçen kelimeyi nasıl bulabileceğinizi adım adım anlatacağız. Ayrıca örnek bir Java kodu paylaşarak algoritmanın nasıl çalıştığını açıklayacağız.

Metinde En Çok Geçen Kelime Neden Önemlidir?
Java ile Metinde En Çok Geçen Kelimeyi Bulma
Bir metindeki en sık kullanılan kelimeyi bulmak birçok farklı alanda kullanılabilir.
Örnek kullanım alanları:
- Metin analizi
- Spam filtreleri
- Arama motoru algoritmaları
- Sosyal medya analizleri
- Log dosyası inceleme
- Veri madenciliği
Örneğin bir haber sitesinde kullanıcı yorumlarını analiz ederken en çok kullanılan kelimeleri belirlemek, içerik hakkında fikir verebilir.
Problemin Mantığı

Java ile Metinde En Çok Geçen Kelimeyi Bulma
Bir metindeki en çok tekrar eden kelimeyi bulmak için şu adımlar izlenir:
- Metni kelimelere ayırmak
- Her kelimenin kaç kez geçtiğini saymak
- En yüksek tekrar sayısına sahip kelimeyi bulmak
Bu işlemi gerçekleştirmek için Java’da en uygun veri yapılarından biri HashMap’tir.
HashMap kullanarak:
- kelime → tekrar sayısı
şeklinde bir yapı oluşturabiliriz.
Örneğin şu metni düşünelim:
java kod yazmak cok eglenceli java ogrenmek cok faydali
Bu metindeki kelimelerin sayısı şöyle olur:
| Kelime | Tekrar |
|---|---|
| java | 2 |
| cok | 2 |
| yazmak | 1 |
| eglenceli | 1 |
| ogrenmek | 1 |
| faydali | 1 |
Buradan en sık geçen kelimeyi kolayca bulabiliriz.
Mantığını Anlayalım: Adım Adım Ne Yapacağız?
Kodu yazmaya başlamadan önce, günlük hayattan bir örnekle işin mantığını kavrayalım. Diyelim ki önünüzde içi meyve dolu kocaman bir sepet var ve en çok hangi meyveden olduğunu bulmak istiyorsunuz. Ne yaparsınız?
- Sepetteki meyveleri tek tek elinize alırsınız.
- Boş bir kağıda meyvenin adını yazıp yanına bir çizik atarsınız (Elma: I, Armut: I).
- Aynı meyveden bir tane daha gelirse, yanına bir çizik daha atarsınız (Elma: II).
- Sepet bittiğinde kağıda bakar ve en çok çiziği olan meyveyi şampiyon ilan edersiniz.
İşte Java’da yazacağımız program tam olarak bu mantıkla çalışacak! Şimdi bu adımları programlama diline nasıl çevireceğimize bakalım.
1. Adım: Metni Temizlemek ve Hazırlamak
Bilgisayarlar bizim gibi okuma yapmazlar. Bizim için “Merhaba,” kelimesindeki virgül önemsizdir ama bilgisayar için “Merhaba” ve “Merhaba,” iki tamamen farklı kelimedir. Ayrıca büyük-küçük harf farkı da vardır (“Java” ve “java” farklı sayılır). Bu yüzden önce bütün harfleri küçültecek ve noktalama işaretlerini silip atacağız.
2. Adım: Cümleyi Kelimelere Parçalamak
Elimizde dümdüz, temizlenmiş uzun bir yazı var. Şimdi bu yazıyı boşluklardan keserek kelimeleri birbirinden ayırmamız gerekiyor. Böylece elimizde sadece kelimelerden oluşan bir liste olacak.
3. Adım: Kelimeleri Saymak ve Depolamak
İşte meyve sepeti örneğindeki “kağıda çizik atma” kısmı burası. Java’da bu iş için HashMap adını verdiğimiz harika bir yapı kullanıyoruz. HashMap, verileri “Anahtar ve Değer” (Key-Value) şeklinde tutar. Bizim anahtarımız kelimenin kendisi, değerimiz ise o kelimenin kaç kere geçtiği olacak.
4. Adım: Şampiyonu Belirlemek
Son adımda, tuttuğumuz bu çetele listesine (HashMap’e) bakacağız. Sayıları baştan aşağı kontrol edip, en yüksek sayıya sahip olan kelimeyi ekrana yazdıracağız.
En Anlaşılır Haliyle Java Kodumuz
Aşağıdaki kod, yukarıda anlattığımız 4 adımı birebir uygulayan en sade ve net Java kodudur. Kodun içinde kafa karıştırıcı gereksiz hiçbir detay veya karmaşık yapı bulunmamaktadır.
Şimdi bu işlemi yapan bir Java programı yazalım.
Java Kod Örneği
import java.util.HashMap;
import java.util.Map;public class EnCokGecenKelime { public static void main(String[] args) { String metin = "java kod yazmak cok eglenceli java ogrenmek cok faydali"; String[] kelimeler = metin.split(" "); HashMap<String, Integer> kelimeSayisi = new HashMap<>(); for (String kelime : kelimeler) {
kelime = kelime.toLowerCase(); if (kelimeSayisi.containsKey(kelime)) {
kelimeSayisi.put(kelime, kelimeSayisi.get(kelime) + 1);
} else {
kelimeSayisi.put(kelime, 1);
}
} String enCokKelime = "";
int max = 0; for (Map.Entry<String, Integer> entry : kelimeSayisi.entrySet()) { if (entry.getValue() > max) {
max = entry.getValue();
enCokKelime = entry.getKey();
} } System.out.println("En cok gecen kelime: " + enCokKelime);
System.out.println("Tekrar sayisi: " + max);
}
}
Kodun Açıklaması
Şimdi yazdığımız Java kodunun nasıl çalıştığını inceleyelim.
1. Metni Tanımlama
String metin = "java kod yazmak cok eglenceli java ogrenmek cok faydali";
Bu satırda analiz edeceğimiz metni tanımlıyoruz.
2. Metni Kelimelere Ayırma
String[] kelimeler = metin.split(" ");
split() metodu metni boşluklara göre ayırarak kelimeleri bir diziye yerleştirir.
3. HashMap Oluşturma
HashMap<String, Integer> kelimeSayisi = new HashMap<>();
Burada:
- anahtar (key) → kelime
- değer (value) → tekrar sayısı
olarak kullanılacaktır.
Java HashMap hakkında daha fazla bilgi için resmi dokümantasyonu inceleyebilirsiniz:
Java SE Documentation

4. Kelimeleri Sayma
for (String kelime : kelimeler)
Bu döngü ile her kelimeyi kontrol ediyoruz.
Eğer kelime daha önce eklenmişse sayısını artırıyoruz.
kelimeSayisi.put(kelime, kelimeSayisi.get(kelime) + 1);
5. En Büyük Değeri Bulma
Java ile Metinde En Çok Geçen Kelimeyi Bulma
Son aşamada HashMap içindeki en büyük değeri buluyoruz.
if (entry.getValue() > max)
Bu sayede en sık kullanılan kelimeyi tespit edebiliriz.
Algoritmanın Zaman Karmaşıklığı

Bu algoritmanın zaman karmaşıklığı:
O(n)
Çünkü:
- metindeki her kelime sadece bir kez işlenir.
Bu nedenle büyük metinlerde bile oldukça hızlı çalışır.
Geliştirilebilecek Özellikler
Bu program daha da geliştirilebilir.
Örneğin:
1️⃣ Noktalama İşaretlerini Temizleme
Metindeki:
- nokta
- virgül
- ünlem
gibi karakterleri temizlemek gerekebilir.
2️⃣ Büyük Küçük Harf Duyarlılığı
“Java” ve “java” kelimelerini aynı saymak için:
kelime = kelime.toLowerCase();
kullanıyoruz.
3️⃣ Stop Words Filtreleme
Bazı kelimeler analizde anlamlı değildir.
Örneğin:
- ve
- ile
- için
- ama
Bu kelimeleri filtreleyebilirsiniz.
Gerçek Hayatta Kullanım Örnekleri
Bu algoritma birçok uygulamada kullanılabilir.
Log Analizi
Sunucu loglarında en çok geçen hatayı bulmak için.
Sosyal Medya Analizi
Bir gönderide en çok kullanılan kelimeyi tespit etmek için.
Arama Motorları
Anahtar kelime yoğunluğu analizinde.
Bu nedenle bu algoritma veri analizi ve doğal dil işleme alanlarında temel bir yöntemdir.
Alternatif Yöntem: Stream API
Java 8 ve sonrası için Stream API kullanarak da benzer bir çözüm yazılabilir. Ancak HashMap yöntemi genellikle daha anlaşılırdır.
Sonuç Olarak
Bu yazıda Java ile bir metinde en çok geçen kelimeyi bulma algoritmasını detaylı şekilde sizler için ele aldık.
Özetlersek:
- metni kelimelere ayırdık
- HashMap ile tekrar sayılarını tuttuk
- en yüksek değeri bulduk
Bu yöntem sayesinde büyük metinlerde bile çok hızlı analiz yapabilirsiniz.
Java öğrenen öğrenciler için bu tür algoritmalar hem veri yapıları mantığını anlamak hem de problem çözme becerilerini geliştirmek açısından oldukça faydalıdır. Daha fazla Java dokümantasyonu ve sınıf bilgisi için Oracle resmi Java referansını da inceleyebilirsiniz.
Sık Sorulan Sorular
Java’da kelime sayma işlemi nasıl yapılır?
Metin split() metodu ile kelimelere ayrılır ve HashMap kullanılarak her kelimenin tekrar sayısı tutulur.
Bu algoritma büyük metinlerde çalışır mı?
Evet. Zaman karmaşıklığı O(n) olduğu için oldukça verimlidir.
Bu yöntem Python veya C++’ta uygulanabilir mi?
Evet. Benzer mantıkla Python’da dictionary, C++’ta ise map veri yapısı kullanılarak uygulanabilir.
Java ile Dizilerde (Array) Eleman Frekansı Bulma: Algoritma ve Çözümü için tıklayın !
Daha fazla bilgi için sitemizi ziyaret etmeyi unutmayın !


