toSnakeCase function

String toSnakeCase(
  1. String camelCase
)

Converts a lowerCamelCase name to snake_case.

Inserts an underscore before each uppercase letter and lowercases the result.

Examples: "fooBar" -> "foo_bar" "fooBarBaz" -> "foo_bar_baz" "foo" -> "foo" "" -> ""

Implementation

String toSnakeCase(String camelCase) {
  if (camelCase.isEmpty) return camelCase;
  final buffer = StringBuffer();
  for (int i = 0; i < camelCase.length; i++) {
    final ch = camelCase[i];
    if (ch == ch.toUpperCase() && ch != ch.toLowerCase()) {
      // Uppercase letter — insert underscore separator.
      if (buffer.isNotEmpty) {
        buffer.write('_');
      }
      buffer.write(ch.toLowerCase());
    } else {
      buffer.write(ch);
    }
  }
  return buffer.toString();
}