• 21-10-2019, 02:29:34
    #1
    Merhaba arkadaşlar java da string bir ifade içinde ki tekrarlayan karakterlerin kaç kere olduğunu bulmaya çalışıyorum bunun için öncelikle rakam ya da karakter ise bulup arraylist atıyorum fakat arraylist içinde ki bir karakterin kaç tane olduğunu nasıl bulabilirim. Örnek vermek gerekirse girilen ifade 1^+af%+
    bunun içinde 4 adet karakter 1 adet sayı var. Bunları bir arraylistte ayırıp topluyorum ama +dan iki adet olduğunu nasıl bastırabilirim.

  • 21-10-2019, 02:39:50
    #2
    Bu şekilde bir string içinde belirttiğin karakter kaç defa geçiyor bulabilirsin.<br><br>

    String str = "meftuniberder";
    char toCheck = 'e';
    int count = 0;

    for(char ch: str.toCharArray()){
    if(ch == toCheck){
    count++;
    }
    }
    System.out.println(count);</pre><br>
  • 21-10-2019, 02:40:16
    #3
      
    import java.util.*; // gerekli import
    
    ArrayList<Character> list = new ArrayList<Character>();
    list.add('a');
    list.add('a');
    list.add('a');
    list.add('a');
    list.add('b');
    list.add('b');
    System.out.println("a" + " karakteri " + Collections.frequency(list, 'a') + " tane..");
    System.out.println("b" + " karakteri " + Collections.frequency(list, 'b') + " tane..");
  • 21-10-2019, 02:41:22
    #4
    onurturali adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde bir string içinde belirttiğin karakter kaç defa geçiyor bulabilirsin.<br><br><pre>String str = "engineering";
    char toCheck = 'g';
    int count = 0;

    for (char ch: str.toCharArray()) {
    if (ch == toCheck) {
    count++;
    }
    }
    System.out.println(count);</pre><br>
    hocam bu for döngüsünü tam anlayamadım
  • 21-10-2019, 02:45:45
    #5
    meftuniberder adlı üyeden alıntı: mesajı görüntüle
    hocam bu for döngüsünü tam anlayamadım
    Hocam stringlerin temel mantığı dizidir. "toCharArray" ile stringin her bir karakterini dizi elemanı gibi gösteriyorsun.
    toCheck char tipinde bir değişken. For döngüsü her döndüğünde senin bu değişkenin toCharArray metotu sayesinde stringin her elemanını geziyor. Foreach gibi düşünebilirsin daha basit olarak.
    (Şöyle düşün: ch değişkeni for her döndükçe değerlerini alıyor. toCheck[0], toCheck[1], toCheck[2] ...)
    Eğer senin belirttiğin tocheck değişkenindeki değer ch ile yani mesela toCheck[0] ile eşleşince count 1 artıyor.

    - Kodu daha okunabilir hale getirdim.

    Edit:
    Temel şu: stringi char dizisine çevir. Dizinin her elemanını senin belirttiğin char tipindeki bir değişken ile eşleştir. Eşleşme true sonuç döndürürse count 1 artsın.
    String to char array için bu linke bakabilirsin: https://crunchify.com/java-simple-wa...to-char-array/
  • 21-10-2019, 02:48:04
    #6
    Üyeliği durduruldu
    String[] harfler={"a","b","c","d","a","b","f","a"};
    
    int sayac=0;
        for (int i = 0; i < harfler.length; i ++){
            if (harfler[i] == "a")  
            sayac++;
    }
    
      System.out.println(sayac);
  • 21-10-2019, 03:03:37
    #7
    hocalarım hepinize teşekkür ederim fakat tam oturtamadım çünkü ifade kullanıcıdan isteyeceğim yani her harf ya da her kelime için sorgu da yapamam kullanıcının girdiği değerin içinde ki karakter ve rakamları saydırmak istiyorum
  • 21-10-2019, 03:06:56
    #8
    meftuniberder adlı üyeden alıntı: mesajı görüntüle
    hocalarım hepinize teşekkür ederim fakat tam oturtamadım çünkü ifade kullanıcıdan isteyeceğim yani her harf ya da her kelime için sorgu da yapamam kullanıcının girdiği değerin içinde ki karakter ve rakamları saydırmak istiyorum
    Hocam şimdi kullanıcının girdiği bir değerin içinde teker teker her harf ve her rakam kaç defa geçiyor onu bulmak istiyorsunuz. Doğru mu anladım.
  • 21-10-2019, 03:10:05
    #9
    Üyeliği durduruldu
    Şu linkten örneğe bakın, istediğiniz şey:
    https://www.geeksforgeeks.org/counti...rray-elements/