Манипуляции с дартс-строками: преобразование в CamelCase

В Dart манипулирование строками — обычная задача во многих приложениях. Одним из конкретных преобразований строк, которое часто требуется, является преобразование строки в верблюжий регистр. Camel-регистр — это соглашение об именах, при котором каждое слово в многословном идентификаторе пишется с заглавной буквы, за исключением первого слова. В этой статье блога мы рассмотрим несколько методов преобразования строки в верблюжий регистр с помощью Dart, а также приведем примеры кода.

Метод 1: использование String.split() и String.replaceRange()

String toCamelCase(String input) {
  List<String> words = input.split(' ');
  for (int i = 1; i < words.length; i++) {
    String word = words[i];
    words[i] = word[0].toUpperCase() + word.substring(1);
  }
  return words.join();
}
void main() {
  String input = 'dart string like camelcase';
  String camelCase = toCamelCase(input);
  print(camelCase);  // Output: dartStringLikeCamelcase
}

Объяснение: В этом методе мы разбиваем входную строку на отдельные слова с помощью метода split(). Затем мы перебираем слова, начиная со второго слова, и записываем первый символ с заглавной буквы, используя метод toUpperCase(). Наконец, мы снова соединяем слова вместе, используя метод join().

Метод 2: использование регулярных выражений

String toCamelCase(String input) {
  RegExp regExp = RegExp(r'(?<=\s|\b)([a-z])');
  return input.replaceAllMapped(regExp, (match) {
    return match.group(0).toUpperCase();
  });
}
void main() {
  String input = 'dart string like camelcase';
  String camelCase = toCamelCase(input);
  print(camelCase);  // Output: dartStringLikeCamelcase
}

Объяснение. В этом методе мы используем регулярное выражение для поиска строчных букв, которым предшествует пробел или граница слова. Затем мы используем метод replaceAllMapped(), чтобы заменить эти строчные буквы на их прописные аналоги.

Метод 3: использование класса StringBuffer

String toCamelCase(String input) {
  StringBuffer sb = StringBuffer();
  List<String> words = input.split(' ');
  sb.write(words[0]);
  for (int i = 1; i < words.length; i++) {
    String word = words[i];
    sb.write(word[0].toUpperCase() + word.substring(1));
  }
  return sb.toString();
}
void main() {
  String input = 'dart string like camelcase';
  String camelCase = toCamelCase(input);
  print(camelCase);  // Output: dartStringLikeCamelcase
}

Объяснение: Этот метод использует класс StringBuffer, который обеспечивает более эффективный способ объединения строк по сравнению с использованием оператора +. Мы разбиваем входную строку на слова и используем метод write()для добавления каждого слова к StringBuffer. Мы записываем первый символ каждого последующего слова перед его добавлением.

В этой статье мы рассмотрели различные методы преобразования строки в верблюжий регистр в Dart. Мы рассмотрели методы использования split()и replaceRange(), регулярных выражений и класса StringBuffer. Каждый метод позволяет достичь желаемого результата, поэтому вы можете выбрать тот, который соответствует вашему стилю кодирования и требованиям к производительности. Манипулирование строками – это фундаментальный навык программирования на Dart, и понимание этих методов поможет вам эффективно решать различные задачи по преобразованию строк.