insertSpaceBetweenCapitalized method
Inserts a space between words that are capitalized in a string (CamelCase or PascalCase).
This method splits the string based on capitalization patterns (e.g., from CamelCase to "Camel Case")
and then joins the split parts with spaces. If splitNumbers
is true, it also splits words before numbers
(e.g., "Numbers123" to "Numbers 123").
Parameters:
splitNumbers
: A boolean value. Iftrue
, also splits words before numbers. Defaults tofalse
.
Returns: A new string with spaces inserted between capitalized words. Returns an empty string if the original string is empty.
Example:
'InsertSpaceBetweenCapitalized'.insertSpaceBetweenCapitalized(); // Returns 'Insert Space Between Capitalized'
'SplitNumbers123'.insertSpaceBetweenCapitalized(splitNumbers: true); // Returns 'Split Numbers 123'
''.insertSpaceBetweenCapitalized(); // Returns ''
NOTE: No split for Unicode NOTE: .trim() is applied afterwards
Implementation
String insertSpaceBetweenCapitalized({bool splitNumbers = false}) {
if (isEmpty) {
// failed null or empty check
return '';
}
final List<String> words = splitCapitalized(splitNumbers: splitNumbers);
if (words.isEmpty) {
return '';
}
// the first word may not be capitalized
words[0] = words.first.capitalize();
return words.join(' ').trim();
}