所以我想知道为什么'大写'方法主动降低句子中其他字符串的第一个字母。
#This makes sense
"mike smith".capitalize
"Mike smith"
#This also makes sense
"Mike smith".capitalize
"Mike smith"
#This confuses me
"mike Smith".capitalize
"Mike smith"
#Also confuses me
"jim the BIG BOY".capitalize
"Jim the big boy"
我假设大写方法会在索引' 0'处寻找char。并取消它。
P.S。我想要的答案不仅解释了为什么(方法如何运作),而且"为什么"。为了"大写"除非我弄错了,否则某些事情并不意味着确保其他一切都是英语口语的小写。
答案 0 :(得分:1)
我同意这是令人惊讶的行为,并且做出假设是合理的。
理由可能是capitalize
将字符串置于"大写状态",当且仅当字符串与/^[A-Z][^A-Z]*$/
匹配时,字符串才会大写。
答案 1 :(得分:1)
String#capitalize状态的Ruby文档只会将第一个字符大写:
返回str的副本,第一个字符转换为大写 其余为小写。