为什么.capitalize方法在字符串中包含其他单词?

时间:2015-02-10 20:51:00

标签: ruby regex

所以我想知道为什么'大写'方法主动降低句子中其他字符串的第一个字母。

#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。我想要的答案不仅解释了为什么(方法如何运作),而且"为什么"。为了"大写"除非我弄错了,否则某些事情并不意味着确保其他一切都是英语口语的小写。

2 个答案:

答案 0 :(得分:1)

我同意这是令人惊讶的行为,并且做出假设是合理的。

理由可能是capitalize将字符串置于"大写状态",当且仅当字符串与/^[A-Z][^A-Z]*$/匹配时,字符串才会大写。

答案 1 :(得分:1)

String#capitalize状态的Ruby文档只会将第一个字符大写:

  

返回str的副本,第一个字符转换为大写   其余为小写。