W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
你想把字符串中每個單詞的首字母轉(zhuǎn)換為大寫形式。
使用“拆分-映射-拼接”模式:先把字符串拆分成單詞,然后通過映射來大寫單詞第一個字母小寫其他字母,最后再將轉(zhuǎn)換后的單詞拼接成字符串。
("foo bar baz".split(' ').map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
# => 'Foo Bar Baz'
或者使用列表推導(dǎo)(comprehension),也可以實(shí)現(xiàn)同樣的結(jié)果:
(word[0].toUpperCase() + word[1..-1].toLowerCase() for word in "foo bar baz".split /\s+/).join ' '
# => 'Foo Bar Baz'
“拆分-映射-拼接”是一種常用的腳本編寫模式,可以追溯到Perl語言。如果能把這個功能直接通過“擴(kuò)展類”放到String類里,就更方便了。
需要注意的是,“拆分-映射-拼接”模式存在兩個問題。第一個問題,只有在文本形式統(tǒng)一的情況下才能有效拆分文本。如果來源字符串中有分隔符包含多個空白符,就需要考慮怎么過濾掉多余的空單詞。一種解決方案是使用正則表達(dá)式來匹配空白符的串,而不是像前面那樣只匹配一個空格:
("foo bar baz".split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
# => 'Foo Bar Baz'
但這樣做又會導(dǎo)致第二個問題:在結(jié)果字符串中,原來的空白符串經(jīng)過拼接就只剩下一個空格了。
不過,一般來說,這兩個問題還是可以接受的。所以,“拆分-映射-拼接”仍然是一種有效的技術(shù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: