Tantangan
Saya sedang membaca Panduan Gaya Java Google beberapa hari yang lalu dan menemukan algoritma mereka untuk mengubah sembarang string menjadi notasi camelCase. Dalam tantangan ini Anda harus menerapkan algoritma ini karena Anda tidak ingin melakukan semua hal ini di kepala Anda ketika Anda menulis kiriman Java Anda yang super kompetitif ke tantangan kode-golf.
Catatan: Saya membuat beberapa penyesuaian kecil pada algoritma. Anda harus menggunakan yang ditentukan di bawah ini.
Algoritma
Anda mulai dengan string input sembarang dan menerapkan operasi berikut untuk itu:
- Hapus semua apostrof
`'
- Bagi hasil menjadi kata-kata dengan membelah
- karakter yang bukan alfanumerik dan bukan digit
[^a-zA-Z0-9]
- Huruf besar yang dikelilingi oleh huruf kecil di kedua sisi.
abcDefGhI jk
misalnya hasil panenabc Def Ghi jk
- karakter yang bukan alfanumerik dan bukan digit
- Huruf kecil setiap kata.
- Huruf besar pertama dari setiap kata kecuali kata pertama.
- Gabungkan semua kata kembali bersama.
Catatan tambahan
- Input hanya akan berisi ASCII yang dapat dicetak.
- Jika digit adalah huruf pertama dalam sebuah kata, biarkan seperti apa adanya dan jangan kapitalisasi sesuatu yang lain dalam kata ini.
- Input akan selalu memiliki setidaknya satu karakter.
Aturan
- Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
Uji kasus
"Programming Puzzles & Code Golf" -> "programmingPuzzlesCodeGolf" "Permintaan HTTP XML" -> "xmlHttpRequest" "mendukung IPv6 di iOS?" -> "supportIpv6OnIos" "SomeThing w1th, apo'strophe's dan 'punc] tuation" -> "someThingW1thApostrophesAndPuncTuation" "nothing special" -> "nothingSpecial" "5pecial ca5e" -> "5pecialCa5e" "1337" -> "1337" "1337-spEAk" -> "1337Speak" "whatA mess" -> "whataMess" "abcD" -> "abcd" "a" -> "a" "B" -> "b"
Selamat Coding!
snake_case
&PascalCase
snake_case
karena Python, tentu saja. FORTH juga memiliki FORTHCASE
dan APL memilikiunreadable in any case
ApostropheS
di output.