Javada kullanıcının girdiği bir cümleyi kelimelerine ayıran ve kaç tane olduğunu yazan programı yapamadım yardımcı olabilir misiniz ? Örneğin : Bu bir deneme cümlesidir ve bu basit bir cümledir. bu 2 bir 2 deneme 1 cümlesidir 1 ve 1 basit 1 cümledir 1

soruldu: 13 May, 07:25

miray's gravatar image

miray
0113
cevap kabul oranı: 0%


import java.util.Scanner;

public class Split {
    //String dizisinde bulunan elemanların adetlerini dönüyor
    public static int count(String[] string, String eleman){
        int sayac=0;
         for (int i = 0; i < string.length; i++) {
            if(string[i].equalsIgnoreCase(eleman)){
                sayac++;
                string[i]=" ";
            }
        }
         return sayac;
    }

    public static void main(String[] args) {
            // Klavyeden string değeri alıyor
        @SuppressWarnings("resource")
        Scanner klavye = new Scanner(System.in);
        String string = klavye.nextLine();
        String[] parts = string.split(" ");

        for (int i = 0; i < parts.length; i++) {
                if(parts[i]!=" ")
                   System.out.print(parts[i]+" "+count(parts, parts[i])+" ");
        }

    }
}
permanent link

cevaplandı: 13 May, 13:18

hasanburakavci's gravatar image

hasanburakavci
240359
cevap kabul oranı: 10%

değiştirildi: 13 May, 13:22

Aradığım buydu çok teşekkür ederim :)

(13 May, 13:45) miray miray's gravatar image

doğru olarak işaretleyebilir misin?

(13 May, 13:51) hasanburakavci hasanburakavci's gravatar image

@hasanburakavci güzel bir kod yazmış. Alternatif bir yol olarak aşağıdaki gibi hashmap kullanılarakta yapılabilir.

import java.util.*;

/*
* @author oztas
*/

class JavaWordFrequencyAnalysis{

static Scanner scan = new Scanner(System.in);
static HashMap<String, Integer> hashmap = new HashMap<String, Integer>();

public static void main(String args[]) {
    System.out.println("Cümlenizi giriniz: ");
    String text = scan.nextLine();

    String[] textToArray = text.split(" ");
    for(String key : textToArray){
        if(hashmap.containsKey(key)){
            int temp = hashmap.get(key);
            temp++;
            hashmap.put(key, temp);
        } else {
            hashmap.put(key, 1);
        }
    }
      for(Map.Entry mapper : hashmap.entrySet()){  
           System.out.println(mapper.getKey() + " : " + mapper.getValue());  
          } 
}
}

Bir text'te geçen karakterlerin sıklık analizini yapmak istersen de daha önce github'a eklemiş olduğum örnek kodlara bakabilirsin.

Frequency Analysis

permanent link

cevaplandı: 14 May, 07:44

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146
cevap kabul oranı: 23%

Bu da işimi yarıyor teşekkür ederim :)

(14 May, 16:44) miray miray's gravatar image

Merhaba cümleyi ' ' boşluk karakterine göre ayırıp istedilerinizi elde edebilirsiniz.

      String x="Bu bir cumledir";

    String[] parts = x.split(" ");
    System.out.println("kelime sayısı" + parts.length);
for(String temp:parts)
{
System.out.println(temp);
}
permanent link

cevaplandı: 13 May, 11:12

tamercan's gravatar image

tamercan
3945
cevap kabul oranı: 4%

Teşekkür ederim :)

(13 May, 13:07) miray miray's gravatar image

Cümle içerisinde her kelimenin arasında boşluk olacağına göre, split kullanmayı dene.

permanent link

cevaplandı: 13 May, 08:00

SaRPaRDa's gravatar image

SaRPaRDa
5.0k213165
cevap kabul oranı: 27%

Kullandım fakat cümlede aynı kelime olduğunda karşısında kaç tane olduğunu yazdıramıyorum.

(13 May, 08:03) miray miray's gravatar image

split sonucu oluşan array'i List'e çevir ve lambda ile group by yap mesela...

(13 May, 10:16) SaRPaRDa SaRPaRDa's gravatar image

Tamam teşekkür ederim :)

(13 May, 13:07) miray miray's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×13

Soruldu: 13 May, 07:25

Görüntüleme: 345 kez

Son güncelleme: 14 May, 17:06

powered by BitNami OSQA