pascalOrCamelToSnake method

String pascalOrCamelToSnake()

PascalCase나 camelCase를 snake_case로 변환합니다. 예: "UserDetail" -> "user_detail", "userDetail" -> "user_detail"

Implementation

String pascalOrCamelToSnake() {
  if (isEmpty) {
    return this;
  }

  // 첫 글자를 소문자로 변환
  String result = this[0].toLowerCase();

  // 나머지 문자열을 순회하면서 대문자 앞에 언더스코어 추가
  for (int i = 1; i < length; i++) {
    final char = this[i];
    if (char == char.toUpperCase() && char != char.toLowerCase()) {
      // 현재 문자가 대문자인 경우
      result += '_${char.toLowerCase()}';
    } else {
      result += char;
    }
  }

  return result;
}