5 методов преобразования слов, разделенных тире/подчеркиванием, в верблюжий регистр

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

Метод 1: разделение и использование заглавных букв (Python)

def convert_to_camel_case(string):
    words = string.replace('-', ' ').replace('_', ' ').split()
    return words[0].lower() + ''.join(word.capitalize() for word in words[1:])
# Example usage
input_string = "converts-dash/underscore-delimited-words"
output_string = convert_to_camel_case(input_string)
print(output_string)  # outputs "convertsDash/UnderscoreDelimitedWords"

Метод 2: регулярные выражения (JavaScript)

function convertToCamelCase(string) {
  return string.replace(/[-_](.)/g, (_, c) => c.toUpperCase());
}
// Example usage
const inputString = "converts-dash/underscore-delimited-words";
const outputString = convertToCamelCase(inputString);
console.log(outputString); // outputs "convertsDash/UnderscoreDelimitedWords"

Метод 3: StringTokenizer (Java)

import java.util.StringTokenizer;
public class CamelCaseConverter {
    public static String convertToCamelCase(String string) {
        StringTokenizer tokenizer = new StringTokenizer(string, "-_");
        StringBuilder result = new StringBuilder(tokenizer.nextToken().toLowerCase());
        while (tokenizer.hasMoreTokens()) {
            String word = tokenizer.nextToken();
            result.append(Character.toUpperCase(word.charAt(0))).append(word.substring(1));
        }
        return result.toString();
    }
// Example usage
    public static void main(String[] args) {
        String inputString = "converts-dash/underscore-delimited-words";
        String outputString = convertToCamelCase(inputString);
        System.out.println(outputString); // outputs "convertsDash/UnderscoreDelimitedWords"
    }
}

Метод 4. Манипуляции с массивами (C#)

using System;
using System.Globalization;
public class CamelCaseConverter {
    public static string ConvertToCamelCase(string input) {
        string[] words = input.Split(new[] { '-', '_' }, StringSplitOptions.RemoveEmptyEntries);
        TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;
        for (int i = 1; i < words.Length; i++) {
            words[i] = textInfo.ToTitleCase(words[i]);
        }
        return string.Concat(words);
    }
// Example usage
    public static void Main(string[] args) {
        string inputString = "converts-dash/underscore-delimited-words";
        string outputString = ConvertToCamelCase(inputString);
        Console.WriteLine(outputString); // outputs "convertsDash/UnderscoreDelimitedWords"
    }
}

Метод 5: разделение и объединение (Ruby)

def convert_to_camel_case(string)
  words = string.split(/[-_]/)
  words.map.with_index { |word, index| index.zero? ? word : word.capitalize }.join
end
# Example usage
input_string = "converts-dash/underscore-delimited-words"
output_string = convert_to_camel_case(input_string)
puts output_string  # outputs "convertsDash/UnderscoreDelimitedWords"

В этой статье мы рассмотрели пять различных методов преобразования слов, разделенных тире или подчеркиванием, в верблюжий регистр. В зависимости от предпочитаемого вами языка программирования вы можете выбрать метод, соответствующий вашим потребностям. Независимо от того, предпочитаете ли вы Python, JavaScript, Java, C# или Ruby, эти примеры кода предоставят вам различные подходы для достижения желаемого преобразования. Следуя этим методам, вы сможете легко преобразовать строки в верблюжий регистр и улучшить читаемость кода.

Не забудьте выбрать метод, соответствующий языку программирования, который вы используете, и учитывать такие факторы, как производительность, читабельность и совместимость при реализации этих преобразований в ваших проектах.