CoffeeScript攻略3.6:大寫單詞首字母
問題
你想把字串中每個單詞的首字母轉換為大寫形式。
方案
使用“拆分-對映-拼接”模式:先把字串拆分成單詞,然後通過對映來大寫單詞第一個字母小寫其他字母,最後再將轉換後的單詞拼接成字串。
("foo bar baz".split(' ').map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
# => 'Foo Bar Baz'
或者使用列表推導(comprehension),也可以實現同樣的結果:
(word[0].toUpperCase() + word[1..-1].toLowerCase() for word in "foo bar baz".split /\s+/).join ' '
# => 'Foo Bar Baz'
討論
“拆分-對映-拼接”是一種常用的指令碼編寫模式,可以追溯到Perl語言。如果能把這個功能直接通過“擴充套件類”(Extending Classes)放到String類裡,就更方便了。
需要注意的是,“拆分-對映-拼接”模式存在兩個問題。第一個問題,只有在文字形式統一的情況下才能有效拆分文字。如果來源字串中有分隔符包含多個空白符,就需要考慮怎麼過濾掉多餘的空單詞。一種解決方案是使用正規表示式來匹配空白符的串,而不是像前面那樣只匹配一個空格:
("foo bar baz".split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
# => 'Foo Bar Baz'
但這樣做又會導致第二個問題:在結果字串中,原來的空白符串經過拼接就只剩下一個空格了。
不過,一般來說,這兩個(或後一個)問題還是可以接受的。所以,“拆分-對映-拼接”仍然是一種有效的技術。
相關文章
- js將英文單詞首字母大寫效果JS
- CSS如何將單詞首字母設定為大寫CSS
- CoffeeScript攻略3.3:把字串轉換為大寫形式字串
- 使用正規表示式將單詞首字母轉換為大寫
- CSS3實現的將英文單詞首字母設定為大寫CSSS3
- Python將所有的英文單詞首字母變成大寫Python
- CoffeeScript攻略3.2:把字串轉換為小寫形式字串
- CoffeeScript攻略1.1:嵌入JavaScriptJavaScript
- CoffeeScript攻略1.3:for迴圈
- CoffeeScript攻略3.7:拆分字串字串
- CoffeeScript攻略3.9:匹配字串字串
- CoffeeScript攻略3.8:字串插值字串
- CoffeeScript攻略3.1:重複字串字串
- php首字母小寫怎麼轉大寫PHP
- CoffeeScript攻略4.9:篩選陣列陣列
- CoffeeScript攻略4.8:歸納陣列陣列
- CoffeeScript攻略3.4:查詢子字串字串
- CoffeeScript攻略1.2:比較範圍
- CoffeeScript攻略4.7:對映陣列陣列
- CoffeeScript攻略2.4:建立類變數變數
- CoffeeScript攻略2.5:鏈式呼叫物件物件
- CoffeeScript攻略4.10:反轉陣列陣列
- CoffeeScript攻略3.10:生成唯一ID
- CoffeeScript攻略4.1:從陣列生成字串陣列字串
- CoffeeScript攻略2.1:克隆物件(深複製)物件
- CoffeeScript攻略4.6:打亂陣列元素陣列
- 關閉mac輸入法首字母大寫Mac
- Visio 中自定義首字母大寫功能
- CoffeeScript攻略4.3:取得陣列最大值陣列
- CoffeeScript攻略4.4:使用陣列交換變數陣列變數
- CoffeeScript攻略4.5:定義陣列範圍陣列
- CoffeeScript攻略2.3:CoffeeScrip的type函式函式
- Go 實現字串首字母大、小寫函式Go字串函式
- 關閉iOS鍵盤首字母自動大寫iOS
- 常見物件-把字串的首字母轉大寫其他轉小寫物件字串
- python開發_大小寫轉換,首字母大寫,去除特殊字元Python字元
- Linux英文單詞縮寫Linux
- 在 Git 中如何更改檔名首字母為大寫Git