insertSpaceBetweenCapitalized method

String insertSpaceBetweenCapitalized({
  1. bool splitNumbers = false,
})

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. If true, also splits words before numbers. Defaults to false.

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();
}