挑战
前几天,我在阅读Google的Java样式指南,偶然发现了他们的算法,可以将任意字符串转换为camelCase表示法。在此挑战中,您必须实现此算法,因为当您将超级竞争的Java提交编写为代码高尔夫球挑战时,您不想在头脑中做所有这些事情。
注意:我对算法做了一些小的调整。您需要使用以下指定的一种。
算法
您从任意输入字符串开始,并对它应用以下操作:
- 删除所有撇号
`'
- 通过在处拆分将结果拆分为单词
- 不是字母数字和数字的字符
[^a-zA-Z0-9]
- 大写字母,两侧均用小写字母包围。
abcDefGhI jk
例如产量abc Def Ghi jk
- 不是字母数字和数字的字符
- 每个单词都小写。
- 除第一个单词外,每个单词的第一个字符均大写。
- 将所有单词重新组合在一起。
附加条款
- 输入将仅包含可打印的ASCII。
- 如果数字是单词中的第一个字母,请保持原样,并且不要使该单词中的其他内容成大写字母。
- 输入将始终至少包含一个字符。
规则
测试用例
“编程难题和代码高尔夫”->“ programmingPuzzlesCodeGolf” “ XML HTTP请求”->“ xmlHttpRequest” “在iOS上支持IPv6吗?” ->“ supportsIpv6OnIos” “某物,载脂蛋白的残基和标点符号”->“ somethingW1thApostrophesAndPuncTuation” “没什么特别的”->“没什么特别的” “ 5pecial ca5e”->“ 5pecialCa5e” “ 1337”->“ 1337” “ 1337-spEAk”->“ 1337Speak” “ whatA混乱”->“ whataMess” “ abcD”->“ abcd” “ a”->“ a” “ B”->“ b”
编码愉快!
snake_case
&PascalCase
snake_case
当然是因为Python。FORTH也有FORTHCASE
和APL有unreadable in any case
ApostropheS
在输出中。