Le défi
Je lisais le Java Style Guide de Google l'autre jour et je suis tombé sur son algorithme pour convertir toute chaîne arbitraire en notation camelCase. Dans ce défi, vous devez implémenter cet algorithme, car vous ne voulez pas faire tout cela dans votre tête lorsque vous écrivez vos soumissions Java extrêmement compétitives aux défis de code-golf.
Note: J'ai fait quelques petits ajustements à l'algorithme. Vous devez utiliser celui spécifié ci-dessous.
L'algorithme
Vous commencez avec une chaîne d'entrée arbitraire et appliquez-lui les opérations suivantes:
- Supprimer toutes les apostrophes
`'
- Diviser le résultat en mots en divisant en
- caractères non alphanumériques et non numériques
[^a-zA-Z0-9]
- Lettres majuscules entourées de lettres minuscules des deux côtés.
abcDefGhI jk
par exemple les rendementsabc Def Ghi jk
- caractères non alphanumériques et non numériques
- Minuscule chaque mot.
- Majuscule le premier caractère de chaque mot sauf le premier.
- Rejoins tous les mots ensemble.
Notes complémentaires
- L'entrée ne contiendra que l'ASCII imprimable.
- Si un chiffre est la première lettre d'un mot, laissez-le tel quel et ne capitalisez pas autre chose dans ce mot.
- L'entrée aura toujours au moins un caractère.
Règles
- Fonction ou programme complet autorisé.
- Règles par défaut pour les entrées / sorties.
- Les failles standard s'appliquent.
- C'est le code-golf , donc le plus petit nombre d'octets gagne. Tiebreaker est une soumission antérieure.
Cas de test
"Programmation Puzzles & Code Golf" -> "programmationPuzzlesCodeGolf" "Demande HTTP XML" -> "xmlHttpRequest" "supporte IPv6 sur iOS?" -> "supportsIpv6OnIos" "Quelque chose avec apo'strophe's et 'punc] tuation" -> "someThingW1thApostrophesAndPuncTuation" "rien de spécial" -> "rien de spécial" "5pecial ca5e" -> "5pecialCa5e" "1337" -> "1337" "1337-spEAk" -> "1337Speak" "quel désordre" -> "whataMess" "abcD" -> "abcd" "a" -> "a" "B" -> "b"
Bon codage!
snake_case
&PascalCase
snake_case
cause de Python, bien sûr. FORTH a également FORTHCASE
et APL aunreadable in any case
ApostropheS
dans la sortie.