Búsqueda de sitios web

¿Cómo convertir una cadena a Camel Case en PowerShell?


Camel case es una convención de nomenclatura de programación popular en la que la primera letra de la primera palabra está en minúscula y la primera letra de cada palabra posterior está en mayúscula, sin espacios ni puntuación entre palabras. Por ejemplo, "convertir cadena a formato camel" se convierte en "convertStringToCamelCase". Esta convención de nomenclatura se utiliza a menudo en nombres de variables y funciones. En este tutorial de PowerShell, le mostraré diferentes métodos para convertir una cadena a formato camel en PowerShell.

Para convertir una cadena a mayúsculas y minúsculas en PowerShell, puede usar una función que divide la cadena en palabras, pone en mayúscula la primera letra de cada palabra excepto la primera y luego las vuelve a unir. Por ejemplo, la función ConvertTo-CamelCase toma una cadena de entrada, la convierte a minúsculas, la divide en palabras, pone en mayúsculas las letras necesarias y las une para formar una cadena en mayúsculas y minúsculas como "convertStringToCamelCase".

Método 1: usar expresiones regulares

Las expresiones regulares (regex) son poderosas para la manipulación de cadenas. En PowerShell, puede utilizar el operador -replace con expresiones regulares para lograr la conversión en formato camel.

Ejemplo

A continuación se muestra un ejemplo de conversión de cadenas a mayúsculas y minúsculas Camel en PowerShell utilizando expresiones regulares.

function ConvertTo-CamelCase {
    param (
        [string]$inputString
    )

    # Convert the string to lowercase and split it into words
    $words = $inputString.ToLower() -split '\s+'

    # Capitalize the first letter of each word except the first one
    for ($i = 1; $i -lt $words.Length; $i++) {
        $words[$i] = -join ([string]$words[$i][0].ToUpper(), $words[$i].Substring(1))
    }

    # Join the words together without spaces
    $camelCaseString = -join $words
    return $camelCaseString
}

# Example usage
$input = "convert string to camel case"
$camelCase = ConvertTo-CamelCase -inputString $input
Write-Output $camelCase  # Output: convertStringToCamelCase

Explicación

  1. Definición de parámetro: La función ConvertTo-CamelCase toma un único parámetro de cadena $inputString.
  2. Conversión y división de minúsculas: la cadena de entrada se convierte a minúsculas y se divide en una matriz de palabras usando el operador -split con un patrón de expresión regular que coincide con cualquier espacio en blanco ( \s+).
  3. Capitalización: un bucle for itera a través de la matriz comenzando desde la segunda palabra (índice 1). Para cada palabra, el primer carácter se convierte a mayúscula y se concatena con el resto de la palabra.
  4. Unir palabras: El operador -join concatena la matriz de palabras nuevamente en una sola cadena.
  5. Salida: Se devuelve la cadena de mayúsculas y minúsculas resultante.

Consulte ¿Cómo dividir una cadena por carácter de tabulación en PowerShell?

Método 2: utilizar la manipulación de cadenas

Permítame mostrarle ahora cómo utilizar la manipulación de cadenas para convertir una cadena a Camel en PowerShell sin depender en gran medida de las expresiones regulares.

A continuación se muestra un ejemplo de cómo hacerlo.

Ejemplo

function ConvertTo-CamelCaseSimple {
    param (
        [string]$inputString
    )

    # Split the string into words
    $words = $inputString.Split(" ")

    # Capitalize the first letter of each word except the first one
    for ($i = 1; $i -lt $words.Length; $i++) {
        $words[$i] = $words[$i].Substring(0, 1).ToUpper() + $words[$i].Substring(1).ToLower()
    }

    # Join the words together
    $camelCaseString = $words[0].ToLower() + ($words[1..$words.Length] -join "")
    return $camelCaseString
}

# Example usage
$input = "convert string to camel case"
$camelCase = ConvertTo-CamelCaseSimple -inputString $input
Write-Output $camelCase  # Output: convertStringToCamelCase

Explicación

  1. Definición de parámetro: La función ConvertTo-CamelCaseSimple toma un parámetro de cadena única $inputString.
  2. División: la cadena de entrada se divide en una matriz de palabras utilizando el método Split con un espacio como delimitador.
  3. Capitalización: un bucle for itera a través de la matriz comenzando desde la segunda palabra (índice 1). El primer carácter se convierte a mayúscula para cada palabra y el resto se convierte a minúscula.
  4. Unir palabras: La primera palabra se convierte a minúsculas y el resto de las palabras se concatenan utilizando el operador -join.
  5. Salida: Se devuelve la cadena de mayúsculas y minúsculas resultante.

Ejecuté el código de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:

Consulte el reemplazo de cadenas de PowerShell

Método 3: usar la clase TextInfo

También puede utilizar la clase TextInfo, que es una clase .NET en PowerShell, para manipulaciones de cadenas más avanzadas.

Ejemplo

Aquí te dejamos un ejemplo para ayudarte a entenderlo mejor.

function ConvertTo-CamelCaseWithTextInfo {
    param (
        [string]$inputString
    )

    # Create a TextInfo object
    $textInfo = [System.Globalization.CultureInfo]::CurrentCulture.TextInfo

    # Convert the string to title case
    $titleCaseString = $textInfo.ToTitleCase($inputString.ToLower())

    # Remove spaces and convert the first character to lowercase
    $camelCaseString = $titleCaseString -replace ' ', ''
    $camelCaseString = $camelCaseString.Substring(0, 1).ToLower() + $camelCaseString.Substring(1)

    return $camelCaseString
}

# Example usage
$input = "convert string to camel case"
$camelCase = ConvertTo-CamelCaseWithTextInfo -inputString $input
Write-Output $camelCase  # Output: convertStringToCamelCase

Explicación

  1. Definición de parámetro: La función ConvertTo-CamelCaseWithTextInfo toma un parámetro de cadena única $inputString.
  2. Objeto TextInfo: Se crea un objeto TextInfo utilizando la información de texto de la cultura actual.
  3. Conversión de mayúsculas y minúsculas: La cadena de entrada se convierte a mayúsculas y minúsculas utilizando el método ToTitleCase, que pone en mayúscula la primera letra de cada palabra.
  4. Eliminar espacios: Los espacios se eliminan utilizando el operador -replace.
  5. Primer carácter en minúscula: El primer carácter de la cadena resultante se convierte a minúscula.
  6. Salida: Se devuelve la cadena de mayúsculas y minúsculas resultante.

Ejecuté el script de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:

Conclusión

En este tutorial, expliqué cómo convertir una cadena a formato camel en PowerShell usando varios métodos, como expresiones regulares, manipulación simple de cadenas o aprovechando clases .NET.

Artículos relacionados