Как мне посчитать символы в строке, а затем отсортировать их по алфавиту? - PullRequest
0 голосов
/ 11 февраля 2020

Я принимаю данные от пользователя. Я сделал это немного Ввод может быть словом или даже предложением, сохраненным в виде строки. Затем я хочу посчитать, сколько раз буквы появляются на входе, а также отсортировать их по алфавиту.

Пример ввода:

learning to program

Пример вывода:

a 2
e 1
g 2
i 1

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Как рассчитать вхождения в строке, объясняется здесь: { ссылка } Я попытался имитировать c ваш пример вывода в этой скрипте кода.

Методы, которые я использовал: Сортировка Карта

const string = "learning to program"

function count(character) {
	return string.split(character).length
}

map = string.split("").map(c => {
	return {c, count: count(c)}
})

map.sort((a,b) => b.count - a.count)

console.log(map)
console.log(string.split("").sort((a,b) => string.split(b).length - string.split(a).length))

также должен выполнять эту работу, но не показывает вхождения.

1 голос
/ 11 февраля 2020

Я написал для вас код, который должен помочь:)

 String name = "doodleice";

    HashMap<Character, Integer> charMap = new HashMap<>();

    char[] charArray = name.toCharArray();

    for(int i = 0; i < charArray.length; i++){
        if(charMap.containsKey(charArray[i])){
            charMap.put(charArray[i], charMap.get(charArray[i]) + 1);
        }
        else{
            charMap.put(charArray[i], 1);
        }
    }

    ArrayList<Character> charList = new ArrayList<>();
    for(Map.Entry<Character, Integer> entry: charMap.entrySet()){
        charList.add(entry.getKey());
    }

    Collections.sort(charList);

    for(int i = 0; i < charList.size(); i++){
        System.out.println(charList.get(i) + " " + charMap.get(charList.get(i)));
    }
...