capitalizeFirstLetterOfEverySentence method
Capitalizes the first letter of every sentence Sentences are determined by periods (.), exclamation marks (!), and question marks (?)
Implementation
String capitalizeFirstLetterOfEverySentence() {
if (isEmpty) return this;
StringBuffer result = StringBuffer();
bool capitalizeNext = true;
bool isAsciiLetter(String ch) {
if (ch.length != 1) return false;
final int code = ch.codeUnitAt(0);
return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
}
for (int i = 0; i < length; i++) {
String char = this[i];
if (char == '.' || char == '!' || char == '?') {
result.write(char);
capitalizeNext = true;
} else if (capitalizeNext && isAsciiLetter(char)) {
result.write(char.toUpperCase());
capitalizeNext = false;
} else {
result.write(char);
if (char.trim().isNotEmpty && !isAsciiLetter(char)) {
// keep capitalizeNext unchanged for whitespace; nothing needed
}
}
}
return result.toString();
}