El reto
Estaba leyendo la Guía de estilo Java de Google el otro día y me topé con su algoritmo para convertir cualquier cadena arbitraria en notación camelCase. En este desafío, debe implementar este algoritmo ya que no desea hacer todo esto en su cabeza cuando está escribiendo sus presentaciones Java súper competitivas para desafíos de código de golf.
Nota: Hice algunos pequeños ajustes al algoritmo. Debe usar el que se especifica a continuación.
El algoritmo
Comienza con una cadena de entrada arbitraria y le aplica las siguientes operaciones:
- Eliminar todos los apóstrofes
`'
- Divide el resultado en palabras dividiéndolo en
- caracteres que no son alfanuméricos ni un dígito
[^a-zA-Z0-9]
- Letras mayúsculas que están rodeadas por letras minúsculas en ambos lados.
abcDefGhI jk
por ejemplo rendimientosabc Def Ghi jk
- caracteres que no son alfanuméricos ni un dígito
- Minúsculas cada palabra.
- En mayúscula el primer carácter de todas menos la primera palabra.
- Une todas las palabras de nuevo juntas.
Notas adicionales
- La entrada solo contendrá ASCII imprimible.
- Si un dígito es la primera letra de una palabra, déjelo como está y no escriba otra cosa en esta palabra.
- La entrada siempre tendrá al menos un carácter.
Reglas
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
Casos de prueba
"Programación de puzzles y código de golf" -> "programaciónPuzzlesCodeGolf" "Solicitud XML HTTP" -> "xmlHttpRequest" "¿Soporta IPv6 en iOS?" -> "supportsIpv6OnIos" "SomeThing w1th, apo'strophe's y 'punc] tuation" -> "someThingW1thApostrophesAndPuncTuation" "nada especial" -> "nada especial" "5pecial ca5e" -> "5pecialCa5e" "1337" -> "1337" "1337-spEAk" -> "1337Speak" "whatA mess" -> "whataMess" "abcD" -> "abcd" "a" -> "a" "B" -> "b"
¡Feliz codificación!
snake_case
&PascalCase
snake_case
por Python, por supuesto. FORTH también tiene FORTHCASE
y APL tieneunreadable in any case
ApostropheS
en la salida.