Metin dosyasından Harf Kelime Saydırmak

bcaner

Öğrenci
Katılım
27 Kasım 2011
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Java İle aşağıdaki açıklamadaki gibi bir uygulama için yardım edermisiniz. ?
Önce açılacak dosyanın adı sorulacak, kullanıcı dosya adını girecek, ardından dosya içindeki metin sonuna kadar taranarak şu bilgiler elde edilecektir:
a. Karakter sayısı (boşluklar dahil),
b. Hece sayısı,
c. Kelime sayısı,
d. Cümle sayısı,
e. Satır sayısı,
Sonra bu bilgiler düzenli bir şekilde ekrana yazdırılacaktır.
Veri dosyası bulunamazsa program “Dosya bulunamadı” mesajı ekrana yazarak çıkmalıdır. Örnek çalışma aşağıda verilmiştir:
Veri dosyasının adını girin: veri.txt
------------------------
Harf sayısı: 204
Hece sayısı: 75
Kelime sayısı: 26
Cümle sayısı: 2
Satır sayısı: 2
------------------------
 

bortu3

Asistan
Katılım
7 Ekim 2010
Mesajlar
114
Reaksiyon puanı
0
Puanları
0
açıkcası java bilmiyorum(öğrenmek istiyorum) ama senin sorununa bakarsak,

bilgilerim dahilinde hece sayısı hariç hepsi bulunabilir,

hece sayısı için özel bir fonksiyon yoksa bir algoritma gerekcek sana

mesela hastahane kelimesi has,ta,ha,ne hangisinin 2 harften hangisinin 3 harften oluşacağını bulmak zorundasın yada farklı bir mantık gerekiyor...

geri kalanlar için java ile dosya/metin işlemleri diye aratırsanız google'ın size milyonlarca sonuç sunacağından eminim.
 

t(>_<t)

Öğrenci
Katılım
3 Ekim 2009
Mesajlar
44
Reaksiyon puanı
3
Puanları
0
Merhaba;
Hece sayısı için, sadece sesli harfleri saymanız yeterli olacaktır.
El-ma : e-a 2.
Hastahane a,a,a,e : 4
Otomobil : o,o,o,i : 4
Cumhuriyet : u,u,i,e : 4 şeklinde.

Satır sayısı : '\n' veya '\r\n' karakterlerini sayacaksınız

Cümle sayısı : ".","...","!","?" gibi cümle bitiren karakterleri sayacaksınız

Kelime sayısı : " " (boşluk) karakterini sayacaksınız

harf sayısı [a-zA-Z] arasi olan bütün karakterleri sayıcaksınız.
 

Sscheme

Öğrenci
Katılım
29 Mayıs 2008
Mesajlar
10
Reaksiyon puanı
1
Puanları
0
PHP:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class ShiftDelete
{
    public static void main(String args[]) throws IOException
    {
        int charCount = 0;
        int heceCount = 0;
        int wordCount = 0;
        int sentenceCount = 0;
        int lineCount = 0;

        System.out.println("Dosya Adi Gir: ");

        Scanner in = new Scanner(System.in);
        String filename = in.nextLine();
        FileReader myReader = null;

        try
        {
            myReader = new FileReader(filename);
        }
        catch (FileNotFoundException e)
        {
            System.out.println("Dosya bulunamadi");
            System.exit(0);
        }

        BufferedReader br = new BufferedReader(myReader);
        String str;

        while ((str = br.readLine()) != null)
        {
            lineCount++;

            /*
             *  Satır sonlarında yer alan Windows için \r\n veya Linux için
             * \n karakteri hesaplamaya dahil değil, dahil etmek istenirse
             * karakter sayısına Windows için lineCount*2 linux için lineCount
             * eklenerek doğru sonuç buluabilir.
             */
            charCount += str.length();

            for (int i = 0; i < str.length(); i++)
            {
                char c = str.charAt(i);

                str = str.toLowerCase();

                if ((c == 'a') || (c == 'e') || (c == 'i') || (c == 'ı') || (c == 'o') || (c == 'ö') || (c == 'u')
                        || (c == 'ü'))
                {
                    heceCount++;
                }
                else if (c == ' ')
                {
                    wordCount++;
                }
                else if ((c == '!') || (c == '?'))
                {
                    sentenceCount++;
                }
                else if (c == '.')
                {
                    /*
                     *  Karakter nokta ise bir önceki karaktere bakar eğer
                     *  o nokta değilse arıtır.  ... karakterinde 1 defa
                     *  artış olsun diye
                     */
                    if (!(str.charAt(i - 1) == '.'))
                    {
                        sentenceCount++;
                    }
                }
            }
        }
		
		myReader.close();
		
        // Satır sonlarındaki kelimeler boşluk olmadığı için arada kaynamasın.
        wordCount += lineCount;

        System.out.println("Karakter sayisi : " + charCount);
        System.out.println("Hece sayisi : " + heceCount);
        System.out.println("Kelime sayisi : " + wordCount);
        System.out.println("Cumle sayisi : " + sentenceCount);
        System.out.println("Satir sayisi : " + lineCount);
    }
}

ayaküstü bi şeyler karaladım. Atladığım bazı özel durumlar olabilir gözden geçirip eklersin onları da, anlamadığın bir şey olrsa sorabilirsin.
 

bcaner

Öğrenci
Katılım
27 Kasım 2011
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
teşekkür ederim. yardımlarınız için

--- Mesaj Güncellendi ---

hece ve karakter saymada hata yapıyor. örn. ( bu yapıda ) yazdığımda 7 karakter 2 hece buluyor. aslı 9 karakter 4 hece olmalı
 

Sscheme

Öğrenci
Katılım
29 Mayıs 2008
Mesajlar
10
Reaksiyon puanı
1
Puanları
0
filej.png


Verdiğin örneği denedim. Önce görmen için a dosyasının içeriğini ekrana bastım sonra da kodu buradaki haliyle çalıştırdım. Sonuç bu, sende farklı çıkıyorsa hatayı başka bir yerde aramalısın ;)
 

t(>_<t)

Öğrenci
Katılım
3 Ekim 2009
Mesajlar
44
Reaksiyon puanı
3
Puanları
0
Merhaba;
Açıklamasız Kod : http://pastie.org/2938372
Açıklamalı Kod : http://pastie.org/2938427

KULLANDIĞIM DOSYA :
Kod:
In Properties, we examined the way an application can use Properties objects to maintain its configuration.
The Java platform itself uses a Properties object to maintain its own configuration. The System class maintains 
a Properties object that describes the configuration of the current working environment. System properties 
include information about the current user, the current version of the Java runtime, and the character used 
to separate components of a file path name.

OUTPUT :
Kod:
Karakter Sayisi : 485
Hece Sayisi : 159
Kelime Sayisi : 71
Cumle Sayisi : 4
Satır Sayısı : 5
Belki Birilerine Lazım Olur :)
 
Üst