Как посчитать частоту символов в строке? - PullRequest
25 голосов
/ 16 июля 2011

Мне нужно написать какой-то цикл, который может считать частоту каждой буквы в строке.
Например: «aasjjikkk» будет считать 2 «a», 1 «s», 2 «j», 1 «i», 3 «k».В конечном счете, идентифицируем, как они, чтобы в конечном итоге на карте с символом в качестве ключа и счетчиком в качестве значения.Любая хорошая идея, как это сделать?

Ответы [ 23 ]

0 голосов
/ 25 декабря 2015
import java.util.*;
class Charfrequency
{
 public static void main(String a[]){

        Scanner sc=new Scanner(System.in);
        System.out.println("Enter Your String :");
        String s1=sc.nextLine();
        int count,j=1;
        char var='a';
        char ch[]=s1.toCharArray();
        while(j<=26)
        {
           count=0;
                for(int i=0; i<s1.length(); i++)
                {
                    if(ch[i]==var || ch[i]==var-32)
                    {
                        count++;
                    }
                }
                if(count>0){
                System.out.println("Frequency of "+var+" is "+count);
                }
                var++;
                j++;
        }
 }
}
0 голосов
/ 06 мая 2019

Uffh. Тебе не кажется, что это самое простое решение?

    char inputChar = '|';
    int freq = "|fd|fdfd|f dfd|fd".replaceAll("[^" + inputChar +"]", "").length();
    System.out.println("freq " + freq);
0 голосов
/ 28 марта 2016
package com.rishi.zava;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class ZipString {
    public static void main(String arg[]) {
        String input = "aaaajjjgggtttssvvkkllaaiiikk";
        int len = input.length();
        Map<Character, Integer> zip = new HashMap<Character, Integer>();
        for (int j = 0; len > j; j++) {
            int count = 0;
            for (int i = 0; len > i; i++) {
                if (input.charAt(j) == input.charAt(i)) {
                    count++;
                }
            }
            zip.put(input.charAt(j), count);
        }
        StringBuffer myValue = new StringBuffer();
        String myMapKeyValue = "";
        for (Entry<Character, Integer> entry : zip.entrySet()) {
            myMapKeyValue = Character.toString(entry.getKey()).concat(
                    Integer.toString(entry.getValue()));
            myValue.append(myMapKeyValue);
        }
        System.out.println(myValue);
    }
}

Ввод = aaaajjjgggtttssvvkkllaaiiikk

Выход = a6s2t3v2g3i3j3k4l2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...