charsRepetition function

Map<String, int> charsRepetition(
  1. String text, {
  2. bool sorted = false,
  3. Order order = Order.descending,
  4. bool ignoreSpace = true,
})

Implementation

Map<String, int> charsRepetition(
  String text, {
  bool sorted = false,
  Order order = Order.descending,
  bool ignoreSpace = true,
}) {
  Map<String, int> result = {};

  final list =
      ignoreSpace ? text.replaceAll(' ', '').split('') : text.split('');

  for (String letter in list) {
    if (letter == ' ') letter = 'space';
    if (result[letter] == null) {
      result[letter] = 1;
    } else {
      result[letter] = (result[letter]! + 1);
    }
  }

  if (sorted) {
    result = Map.fromEntries(result.entries.toList()
      ..sort((e1, e2) => order == Order.ascending
          ? e1.value.compareTo(e2.value)
          : e2.value.compareTo(e1.value)));
  }

  return result;
}