mostFrequent method
Finds the most frequent character in the String
.
Example 1
String foo = 'Hello World';
String mostFrequent = foo.mostFrequent; // returns 'l'
Implementation
String? mostFrequent({bool ignoreSpaces = false}) {
if (this.isBlank) {
return this;
}
if (ignoreSpaces) {
return this!.replaceAll(' ', '').mostFrequent();
}
var occurrences = <String, int>{};
var letters = this!.split('')..sort();
var checkingLetter = letters[0];
var count = 0;
for (var i = 0, len = letters.length; i < len; i++) {
if (letters[i] == checkingLetter) {
count++;
if (i == len - 1) {
occurrences[checkingLetter] = count;
}
} else {
occurrences[checkingLetter] = count;
checkingLetter = letters[i];
count = 1;
}
}
var mostFrequent = '';
var occursCount = -1;
occurrences.forEach((character, occurs) {
if (occurs > occursCount) {
mostFrequent = character;
occursCount = occurs;
}
});
return mostFrequent;
}